Skip to content

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

@JusterZhu

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions