libtracer¶
Tracer is a spec-first, high-performance protocol for distributed state and messaging over a single zero-copy wire format — pub/sub streams, read/write/await, live configuration, and introspection across one graph of addressable vertices, from Cortex-M microcontrollers to Linux gateways. The same TLV bytes are the wire encoding, the in-memory representation, and the graph node.
libtracer is Tracer’s reference implementation: the C++ core, its bindings and integrations, and the packages this site documents. In it an in-process hand-off moves zero bytes, a steady-state forward hop makes zero heap allocations, and a plain write lands in tens of nanoseconds. Measured up to 9× the delivery rate of zenoh-c at equal payloads and semantics, with lower latency at every point — all of it CI-gated on every merge.
Note
When the spec and any other document disagree, the spec wins. The reference suite is descriptive; the design rationale (ADRs) and proposals (RFCs) live in the repository, not this site.
Reproducible numbers vs Eclipse Zenoh, a live auto-generated test report across every subsystem, and the 16KB zero-heap forward gate.
Build the C++ node and write your first vertex, pub/sub, and a two-node exchange in about ten minutes — then browse seven compile-tested examples and the module-by-module guide.
The descriptive six-layer model and load-bearing architecture — the “what it is”, read as one standard, independent of any implementation.
Which language core or platform port does what — native codecs, ports, bindings — and how far each is verified, in one capability matrix.
Interop enforcement without a certification cartel: stay byte-agnostic, be nameable, be legible — and let a developer’s agent build the integration from a node’s own self-description.
The normative v1 wire protocol: byte-level TLV framing an interoperable implementation must honor, in any language on any platform. When the spec and any other document disagree, the spec wins.