cesr
CESR + KERI primitives for Rust as a single feature-gated crate (modules: core/crypto/stream/utils/keri/serder). no_std/WASM-capable.
cesr consolidates six previously separate crates (cesr-utils, cesr-core, cesr-crypto, cesr-stream, keri-core, keri-serder) into one crate with independent feature gates per module. Public API paths are preserved verbatim — cesr_core::Matter becomes cesr::core::Matter. No behavior or signature changed in the extraction.
Modules & Features
| Module | Feature | Internal deps | Origin crate |
|---|---|---|---|
utils |
utils |
— | cesr-utils |
core |
core |
utils |
cesr-core |
crypto |
crypto |
core |
cesr-crypto |
stream |
stream |
core, utils |
cesr-stream |
keri |
keri |
core |
keri-core |
serder |
serder |
keri, crypto, stream |
keri-serder |
Default features: ["std", "core", "utils"].
Usage
Published to crates.io as cesr-rs (the bare cesr name is taken) — the
library is still imported as cesr:
[]
= { = "0.1", = ["keri", "serder"] }
# or, to keep the dependency key as `cesr`:
# cesr = { package = "cesr-rs", version = "0.1", features = ["keri", "serder"] }
use Matter; // import name is always `cesr`
Or pin a git tag directly:
[]
= { = "https://github.com/devrandom-labs/cesr", = "v0.1.0", = ["keri", "serder"] }
no_std / WASM
The crate builds on wasm32-unknown-unknown and bare-metal no_std targets. Disable default features and select the modules you need plus alloc:
= { = "https://github.com/devrandom-labs/cesr", = "v0.1.0", = false, = ["alloc", "core", "keri"] }
Building
nix flake check is the single gate (clippy, fmt, taplo, audit, deny, nextest, doctest, wasm32, no_std). Use nix develop to enter the dev shell.