You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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
crates/directory at repo root with emptyCargo.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.Cargo.tomlworkspace manifest withmembers = ["crates/*"]and shared dependency versions.relayburn-cliCargo.toml uses[[bin]] name = "burn" path = "src/main.rs"(the crate name isrelayburn-clibecauseburnis taken on crates.io; the binary keeps theburninvocation).rust-toolchain.toml) — current stable..cargo/config.tomlif needed for cross-compilation targets.cargo build --workspace+cargo test --workspacejob to the existing GitHub Actions, running alongside the TS build for now.packages/TS +crates/Rust) inCLAUDE.mdand rootREADME.md.Out of scope
lib.rswith// TODO).relayburn-sdk-node).Depends on
Nothing — this unblocks everything else.
Acceptance
cargo build --workspacesucceeds on a clean checkout.cargo test --workspacesucceeds (no tests yet, but framework runs).cargo install --path crates/relayburn-cliproduces aburnbinary that runs (even if it just prints "not yet implemented").pnpm run buildandpnpm run teststill succeed unchanged.