Skip to content

Rust SDK

nnrp-rs is the canonical Rust implementation of NNRP/1 Preview4. It owns the wire model, runtime-control profiles, object/cache metadata, transport provider interfaces, native FFI ABI, browser WASM primitives, and conformance support used by downstream SDKs.

Package Map

PackageBoundaryRead first
nnrp-coreProtocol constants, wire codecs, metadata structs, profile registries, validation, runtime-control and object/cache modelsCore Types
nnrp-runtimeTransport-neutral async client/server session runtimeClient API, Server API
nnrp-transport-providerProvider registry, policy, probe scoring, and selectionAPI Overview
nnrp-transport-tcpTCP transport implementationQuick Start
nnrp-transport-quicQuinn/Rustls QUIC transport implementationAPI Overview
nnrp-transport-ipcUnix domain socket / Windows named pipe transport implementationAPI Overview
nnrp-transport-websocketNative Rust WebSocket transport implementation for binary NNRP framesAPI Overview
nnrp-ffiC ABI and transport-scoped native artifact packagingFFI / Native
nnrp-wasmBrowser WASM primitives and generated TypeScript declarationsWASM
nnrp-conformanceRust-backed adapter, wire conformance, and benchmark helpersConformance

How To Choose A Path

GoalUse
Build a native Rust client or servernnrp-runtime plus one or more nnrp-transport-* packages
Let runtime choose among installed transportsnnrp-transport-provider with registered TCP/QUIC/IPC/WebSocket providers
Bind Python, C#, Unity, or another native hostnnrp-ffi release artifacts
Ship browser protocol primitivesnnrp-wasm; browser transport lifecycle stays in the JS/TS SDK
Check semantic compatibilitynnrp-conformance wire and adapter suites

Current Status

Preview4 adds runtime-control frames, object/cache-reference frames, IPC and WebSocket transports, transport-scoped native artifacts, browser WASM primitives, and wire-level conformance support. The Rust runtime remains transport-neutral: client/server session behavior lives in nnrp-runtime, while each transport crate owns its own networking implementation.

Start with Quick Start, then use the API Overview to jump into the exact surface you need.

NNRP Documentation