ndn-rs
ndn-rs is a Named Data Networking (NDN) stack in Rust. It ships a
forwarder (ndn-fwd), an embeddable engine (ndn-engine), and a
Develop-tier umbrella crate (ndn-rs-prelude, library name ndn)
that an application reaches for to fetch a Data by name or serve
one.
The first stable boundary is the spec-aligned core plus the tooling needed to run and verify it. Browser, embedded, mobile, BLE, WebRTC, in-network compute, network coding, ABE, and dashboard work live in extension or research scopes unless their individual pages say otherwise.
The project is primarily AI-authored and still carries known spec-compliance findings. Do not cite ndn-rs as a reference implementation of NDN; use the live audit tracker and spec-compliance page to decide what has actually been witnessed.
Three API tiers separate audience from intent:
- Develop — application authors. The 5-minute
path: connect a
Consumer, callfetch_object. - Extend — protocol, strategy, and face
authors. Implement
Strategy,RoutingProtocol, orFacewithout forking the engine. - Instrument — researchers and
measurement tooling. Feature-gated
experimental-instrument; observe every packet, inject a strategy, wire two engines.
Start here
- New to NDN? → NDN overview.
- Writing your first app? → Five-minute app.
- Running a node? → Running the forwarder.
- Building a strategy or face? → Extend tier.
- Checking release readiness? → v0.1.0 boundary.
The source lives at
github.com/Quarmire/ndn-rs.
The crate map and pipeline shape are in
ARCHITECTURE.md.