Thanks for your interest! This project is built incrementally and values correctness and security over speed (it handles crypto keys).
- Rust 1.84.1 — pinned via
rust-toolchain.toml;rustupwill install it automatically. - Docker — for the local Postgres (
docker compose up -d db). - just — task runner (
cargo install just), optional but recommended.
cp .env.example .env
just build && just testRun the same checks CI runs:
just fmt # cargo fmt
just lint # cargo clippy -- -D warnings
just test # cargo test
cargo deny check # licenses + advisories (cargo install cargo-deny)All of fmt --check, clippy -D warnings, and the test suite must pass.
Troubleshooting
E0514: found crate X compiled by an incompatible version of rustc. This appears whentarget/holds artifacts from two differentrustcbuilds that share a version string but not their internal metadata format — e.g. a system/usr/bin/rustcvs. a rustup-managed toolchain, or after runningcargo clippy(whoseclippy-driverwrites rmeta a plainrustcbuild then rejects). Fix:cargo clean && cargo test --workspace— a single clean rebuild makes all artifacts come from one toolchain. To avoid it: use onecargoconsistently, and don't runcargo clippylocally on source-tarball toolchains (clippy is enforced in CI on an official toolchain).cargo build/test/fmtare otherwise unaffected.
- Commits: Conventional Commits (
feat:,fix:,docs:,refactor:,test:,chore:). - Secrets: never log seeds, private keys, or decrypted material. Secret-bearing types live in
wallet-coreand mustzeroizeon drop. - Tests: crypto and derivation code must include test vectors (e.g. SEP-0005).
Work on a feature branch; open a PR against main. CI must be green before merge.