Skip to content

[Vela OTA] Sub-Issue 1: Rust workspace scaffolding #181

Description

@JusterZhu

Sub-Issue 1: Rust workspace scaffolding for vela-core

Workspace structure

src/vela/vela-core/
├── Cargo.toml          # workspace root with shared dependency versions
├── crates/
│   ├── vela-crypto/    # Cryptographic primitives (signing, hashing, key management)
│   ├── vela-flashpack/ # FlashPack (.fpk) update bundle format
│   ├── vela-attestation/ # Device identity attestation and session tokens
│   ├── vela-lifecycle/ # Update lifecycle state machine
│   ├── vela-slotmgr/   # Primary/Alternate dual-slot partition management
│   ├── vela-pulse/     # Health pulse status reporting
│   ├── vela-ffi/       # C ABI layer for C# interop
│   └── vela-core/      # Top-level orchestration crate
└── tests/              # Integration tests

Tech stack

  • Rust 1.85+, edition 2024
  • Structured logging: tracing 0.1.x (JSON output)
  • Async runtime: tokio 1.x
  • Error handling: thiserror 2.x
  • Safety: #![forbid(unsafe_code)] on all crates except vela-ffi

Completed

  • Workspace root Cargo.toml with unified version management and complete dependency declarations
  • All 7 crate Cargo.toml files with precise version pinning
  • All 7 crate lib.rs files with trait definitions, error types, and core data structures
  • vela-ffi C ABI exports (vela_init, vela_shutdown, vela_fpk_open, vela_fpk_close, vela_last_error, vela_clear_error)
  • vela-core top-level crate with structured JSON logging initialization and unified VelaError type

Dependencies

  • None (this is the first Vela OTA issue)

Branch

feat/vela-ota

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions