The main branch is in maintenance and bug-fix mode. The develop branch
contains current work.
cargo +nightly fmt- formatcargo clippy -p <crate> --all-features --all-targets- lint with featurescargo clippy -p <crate> --no-default-features --all-targets- lint withoutcargo t -p <crate>- test specific crate
Pre-commit: clippy (both feature sets where applicable) + fmt. Never use cargo check/build.
- Functional combinators over imperative control flow
let elsefor early returns, avoid nesting- No glob imports; group imports from same crate; no blank lines between imports
- Private by default,
pub(crate)for internal,pubfor API only; neverpub(super) thiserrorfor library errors,eyrefor apps, neveranyhowtracingfor instrumentation: instrument work items not long-lived tasks;skip(self)on methods- Builders for structs with >4 fields or multiple same-type fields
- Tests: fail fast with
unwrap(), never returnResult; unit tests inmod tests - Rustdoc on all public items with usage examples; hide scaffolding with
# // SAFETY:comments on all unsafe blocks
All crates use signet- prefix. Features exist in:
signet-blobber:test-utilssignet-node-config:test_utils
Other crates (signet-node, signet-node-types, signet-rpc, signet-db, signet-block-processor, signet-genesis, signet-node-tests) have no feature flags — lint with --all-features only.