Skip to content
Oris Docs

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 with ed25519-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