Rust consumers may evaluate all implemented packages from the public source
repository. The protected 0.1.0-rc.1 train additionally activates
identus-derive, identus-core, and identus-crypto for crates.io; an
immutable registry receipt proves whether that external publication completed.
| Cargo package | Path | Default features | Current status |
|---|---|---|---|
identus-core |
crates/core |
none | experimental 0.1.0-rc.1 train |
identus-derive |
crates/derive |
none | experimental 0.1.0-rc.1 train |
identus-crypto |
crates/crypto |
crypto suite | experimental 0.1.0-rc.1 train |
identus-did |
crates/did |
none | experimental 0.1.0-rc.1 candidate; source-only |
identus-did-resolver-http |
crates/did-resolver-http |
none | experimental 0.1.0-rc.1 candidate; source-only |
The candidate-only DID train is described by
docs/release/release-trains.toml and docs/release/did-candidate.toml. Its
reserved identity is identus-did-v0.1.0-rc.1. Local assembly renders and
tests release-shaped archives in an external scratch directory, but does not
change the canonical manifests, publish a crate, create a tag, or claim that
the candidate is available from crates.io. Publication activation is a
separate reviewed milestone.
Use the canonical public HTTPS repository and replace SDK_COMMIT with the
reviewed, full lowercase 40-hex commit that the consumer intends to validate:
identus-crypto = { git = "https://github.com/hyperledger-identus/sdk-rust", rev = "SDK_COMMIT", default-features = false, features = [ "ed25519", "hash" ] }SDK_COMMIT is an instructional placeholder, not a resolvable artifact. For a
concrete, historically validated canary, NeoPRISM used:
identus-crypto = { git = "https://github.com/hyperledger-identus/sdk-rust", rev = "04b45b7fceb094ae601e3cf7a3291de0a0248b57", default-features = false, features = [ "ed25519", "hash" ] }Apply the same git and exact rev fields to any package in the table. Do not
use a branch, tag, pull-request ref, default branch, or short revision as the
artifact identity. Do not add a misleading version = "0.0.0" selector.
Choose features explicitly for identus-crypto; a downstream compatibility
facade may choose a broader set.
Commit the resulting Cargo.lock. Cargo records the resolved Git commit in the
lockfile, so review both the manifest and lockfile whenever the SDK moves. A
library intended for crates.io publication cannot retain this Git dependency;
it must wait for and adopt registry-published SDK packages.
Nix does not change the Cargo identity. Keep the manifest's exact SDK commit and
the committed Cargo lock, then retain the consumer's normal flake.lock,
narHash, or fixed-output hash evidence. The SDK does not currently expose a
supported Nix package or overlay; consumers build their own Cargo dependency
graph.
An SDK source update records:
- the old and new full SDK commits;
- selected package names and features;
- consumer Rust compiler and tested targets;
- Cargo lock and any Nix lock/hash delta;
- build, unit, conformance, and relevant integration results.
The selected commit should be reachable from protected develop and have green
SDK CI evidence. Public readability is necessary but does not replace review of
the commit, dependency delta, license evidence, or the consumer's own threat
model.
This remains a pre-release channel. The three published release-train crates
make an experimental prerelease SemVer commitment; they make no stable SemVer compatibility,
support-lifetime, binary, Nix package, FFI package,
certification, or production-release promise. Candidate-only and other
workspace packages retain version 0.0.0 and publish = false. An exact Git
commit is still the only supported evaluation identity for those source-only
packages. The current consumer compiler floor is Rust 1.89.0.
NeoPRISM's identus-apollo is a downstream compatibility facade over
identus-crypto; it is not another name for an SDK package. Registry release
and foreign-language distribution require separate decisions.
Primary reference material: