Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Candidate crates

Each candidate crate has one reason to exist and a visible boundary. The separation is designed for low coupling, high cohesion, minimal feature cones, and independent future evolution.

Crypto foundation train

CrateKindRuntime dependency direction
identus-deriveProcedural macroBuild-time only
identus-coreFoundation values and portsDepends on identus-derive and Serde
identus-cryptoCryptographic primitivesDepends on identus-core and identus-derive; algorithms are feature-gated

The release train is not a layered facade where consumers must always import all three. A consumer normally selects the highest-level crate it needs; Cargo resolves its exact internal closure.

DID candidate train

CrateKindRuntime dependency direction
identus-didGeneric DID domain and portsDepends on released identus-core; uses identus-derive at build time
identus-did-resolver-httpOptional Axum HTTP adapterDepends on identus-did, released identus-core, and host HTTP libraries

These two packages are candidate-only and source-evaluated. They are not available from crates.io merely because a staged 0.1.0-rc.1 archive and public-API origin exist. See the DID candidate review.