2.3 KiB
2.3 KiB
id, name, status, depends_on, scope, risk, impact, level
| id | name | status | depends_on | scope | risk | impact | level |
|---|---|---|---|---|---|---|---|
| setup/project-init | Initialize Cargo workspace with wraith, wraith-core, and wraith-napi crates | pending | moderate | low | project | implementation |
Description
Set up the Rust workspace from scratch. The repo currently has only docs/ and .git/. Initialize a Cargo workspace with three crate directories following the architecture spec:
wraith-core— library crate with feature flags (tls,iroh,acme). All core logic lives here.wraith— binary crate depending onwraith-core. CLI entry point.wraith-napi— napi-rs crate for the Node.js native addon (skeleton only at this stage).
Per overview.md: russh, tokio, clap, tracing, anyhow/thiserror are core dependencies. tokio-rustls, rustls, rustls-acme, iroh are feature-gated.
Acceptance Criteria
Cargo.tomlworkspace root with[workspace]members:crates/wraith-core,crates/wraith,crates/wraith-napicrates/wraith-core/Cargo.tomlwith library crate, feature flags:tls(tokio-rustls + rustls),iroh(iroh),acme(rustls-acme, impliestls)- Core dependencies listed:
russh,tokio(full),tracing,anyhow,thiserror,tokio-util crates/wraith/Cargo.tomlwith binary crate, depends onwraith-corewith default features,clapwithderivefeaturecrates/wraith-napi/Cargo.tomlwithcdylibcrate type, depends onwraith-core,napiandnapi-derivecrates/wraith-core/src/lib.rswith module skeleton:pub mod transport; pub mod client; pub mod server; pub mod auth; pub mod socks5; pub mod error;crates/wraith/src/main.rswith minimalfn main()skeletoncrates/wraith-napi/src/lib.rswith#[macro_use] extern crate napi_derive;and empty skeleton.gitignorecoverstarget/,node_modules/cargo checksucceeds for all workspace members- Feature flags resolve correctly:
cargo check -p wraith-core --features tls,--features iroh,--features acme
References
- docs/architecture/overview.md — package structure, dependencies, feature flags
- docs/architecture/napi-and-pubsub.md — wraith-napi crate purpose
Notes
To be filled by implementation agent
Summary
To be filled on completion