Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

v0.1.0 release boundary

This page is the release-candidate boundary for v0.1.0. It describes what should become stable when the tag is cut; it is not evidence that the tag has already shipped.

v0.1.0 is scoped to the spec-aligned core plus the operator tooling needed to build, run, and verify that core. Extension and research work stays available in the workspace, but does not inherit the same stability promise unless called out below.

Stability promise

Scopev0.1.0 statusPromise
specIn release boundaryWire behavior and public APIs should follow the cited NDN specs and remain SemVer-stable across v0.1.x.
toolingIn release boundary where it supports the coreCLIs keep sensible exit codes, help text, and machine-readable output stable across v0.1.x.
extensionOut of stable boundary by defaultUseful engineering surfaces; may change while the core settles.
draft / researchOut of stable boundaryExploratory code. Buildable does not mean stable.

Candidate contents

Develop tier

For application authors. The stable promise is the umbrella crate ndn-rs-prelude with library name ndn:

  • Consumer::fetch and Consumer::fetch_object.
  • Producer::publish_object and Responder.
  • Subscriber as a read-only multi-publisher stream.
  • KeyChain, SigningInfo, and the packet/name builders needed by ordinary applications.
  • IpcConnection for an external forwarder and InProcConnection for embedded-engine tests.

Extend tier

For protocol, strategy, and face authors:

  • Strategy with register_strategy! and scheduled events.
  • RoutingProtocol / RoutingHandle with typed status.
  • Transport + LinkService = Face, including the NDNLPv2 LpLinkService.
  • DiscoveryProtocol, MgmtModule, NotificationStream, TrustPolicy, ValidationPolicy, Signer, and Verifier.

Instrument tier

For researchers and measurement tooling. The tier is opt-in via experimental-instrument and intentionally looser than Develop or Extend:

  • Engine table accessors for FIB, RIB, PIT, CS, strategy table, measurements, routing, and discovery context.
  • TapFace, CallbackFace, and custom in-process face kinds.
  • ContextEnricher and tracing target taxonomy.

Forwarder and core tooling

  • ndn-fwd standalone forwarder.
  • ndn-tools binaries: ndn-peek, ndn-put, ndn-ping, ndn-sec, ndn-ctl, ndn-traffic, and ndn-iperf.
  • enroll-ndncert for enrollment flows.
  • ndn-bench, ndn-otel-bridge, and the audit/testbed scripts as operator and verification tooling.

Out of stable boundary

These areas may be built, documented, or demoed in the repository, but should not be treated as v0.1-stable unless promoted by a later release note:

  • Browser and SharedWorker engine topology, WebRTC/WebBLE, and browser-specific persistence.
  • Embedded/mobile/FFI surfaces.
  • In-network compute, network coding, CCLF, ABE, simulation, and research substrates.
  • Dashboard UX and TrustContext/onboarding flows currently under active development.

Release blockers

The release-audit and interop blockers have been cleared in the 2026-05-28 readiness pass:

  • The tracker-driven audit harness RESULTS_DIR=/private/tmp/ndn-audit-results bash testbed/tests/audit/run_all.sh reported 54 PASS / 0 FAIL / 0 SKIP, with 0 divergences. Transcript: testbed/tests/audit/transcripts/release_audit_run_all_after.txt.
  • The cross-implementation interop harness from the interop image reported 8 passed, 0 failed, 0 skipped.
  • The release docs and testbed/EXPECTED_FAILURES.md now agree on the closed blocker set.

Remaining pre-tag checks are the normal repository-wide verification floor below, plus any maintainer review needed for the already-dirty worktree.

Recently closed blockers:

  • A.15 KeyLocator rules now pass a15_keylocator_rules.sh.
  • C.09 SafeBag portability now passes against reference ndnsec.
  • C.12 management command signing and fresh dataset reads now pass Rust and Docker NFD witnesses.
  • C.13 NDNCERT enrollment now passes the live upstream CA witness.
  • D.02 /localhop scope now passes remote-drop/local-Unix-accept live interop; the witness waits for the local producer route before fetching.
  • E.04 management datasets now pass version/segment/FinalBlockId live interop with retry for dataset availability.
  • G.03, G.04, and G.06 now pass PSync, NLSR, and AutoConfig live interop witnesses.
  • N.05 Nack without reason now passes n05_nack_no_reason.sh.
  • N.02 and N.09 now include live UDP shared-medium witnesses.
  • The interop image now fails its build if ndnpeek, ndnpoke, ndncat, or the ndn-rs peer tools are absent.

Verification floor

Before tagging, run at least:

cargo build
cargo clippy -- -D warnings
mdbook build docs/wiki

Run scoped tests or audit witnesses for the crates touched by release blocker fixes. A full workspace test run is intentionally not the default development loop for this repository.

Post-v0.1 candidates

  • Develop-tier publish into a sync group.
  • Custom ContentStore example and non-default implementation witness.
  • Structured packet-trace export for TapFace.
  • Promotion criteria for selected extension crates once their APIs and threat models settle.