Rust core
VISION
The Rust core SDK is the third client in the L8 lineup. Target audience: payment networks, on-chain verifier operators, high-throughput services that cannot afford the GC pauses of the Python or TypeScript SDKs.
Status
A future milestone. Lands alongside mainnet rollout. The library is planned around the same surface area as the Python SDK with a thin async wrapper over the canonical bundle encoder.
What it will ship
oris_core::client::OrisClient— REST client with Ed25519 signing.oris_core::protocol::OrisProtocol— L8 verifier client.oris_core::types— borrow-friendly types matching the canonical bundle shape.oris_core::canonical— zero-copy encoder for the 196-byte public input layout.
The bundle encoder is the highest-value piece. Networks running their own verifier inside a privileged perimeter want microsecond-level bundle parsing, no allocations on the hot path.
Why now is too early
- The bundle schema is stable but v2 ZK proof types are still partner-led.
- The HTTP surface continues to add tags in minor versions.
- Cross-language parity testing covers Python and TypeScript today.
Locking the Rust API before those settle would cost more in re-do than the wait costs in adoption.
Workarounds while you wait
- HTTP direct — the wire format is documented in the API reference. Any Rust HTTP client (
reqwest,ureq) can hit it. Sign withed25519-dalek. - TypeScript via N-API — call the TypeScript SDK from a native Node addon; suitable for hybrid services.
- Python over IPC — embed the Python SDK in a sidecar; talk to it via gRPC or stdio.
Where to go next
- L8 SDKs for the cross-language parity model.
- Bundle verification guide for the wire format that the Rust core will encode.
- Python SDK for today’s reference surface.