Skip to content

[Rust port] Cargo workspace skeleton #241

@willwashburn

Description

@willwashburn

Parent: #240

Context

Stand up the Cargo workspace skeleton so subsequent crate ports have a place to land. This unblocks every other sub-issue in the epic.

Scope

  • Create crates/ directory at repo root with empty Cargo.tomls for the 7 crates listed in Epic: rewrite burn in Rust (v2 — supersedes #222) #240's workspace shape: relayburn-reader, -ledger, -analyze, -ingest, -sdk, -cli, -sdk-node.
  • Top-level Cargo.toml workspace manifest with members = ["crates/*"] and shared dependency versions.
  • relayburn-cli Cargo.toml uses [[bin]] name = "burn" path = "src/main.rs" (the crate name is relayburn-cli because burn is taken on crates.io; the binary keeps the burn invocation).
  • Pin Rust toolchain (rust-toolchain.toml) — current stable.
  • .cargo/config.toml if needed for cross-compilation targets.
  • CI: add a cargo build --workspace + cargo test --workspace job to the existing GitHub Actions, running alongside the TS build for now.
  • Document the dual-tree (packages/ TS + crates/ Rust) in CLAUDE.md and root README.md.

Out of scope

  • Any actual port work. Each crate is empty (lib.rs with // TODO).
  • napi-rs setup (covered in the sub-issue for relayburn-sdk-node).

Depends on

Nothing — this unblocks everything else.

Acceptance

  • cargo build --workspace succeeds on a clean checkout.
  • cargo test --workspace succeeds (no tests yet, but framework runs).
  • CI job is green.
  • cargo install --path crates/relayburn-cli produces a burn binary that runs (even if it just prints "not yet implemented").
  • pnpm run build and pnpm run test still succeed unchanged.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions