Zenoh Protocol Specification
Zenoh (pronounced /zeno/) is a pub/sub/query protocol engineered for the full compute continuum — from microcontrollers to cloud infrastructure. This document formally defines the wire format, protocol behaviours, and semantics of Zenoh version 1.0.0.
How to Read this Specification
Readers new to Zenoh should start with the Introduction and Concepts sections before proceeding to the protocol details. Implementors should pay close attention to the Wire Format and Session sections.
Document Structure
| Section | Description |
|---|---|
Goals, non-goals, and high-level overview of the protocol. |
|
Core abstractions: key expressions, entities, QoS, and value encoding. |
|
System roles, network topologies, and routing. |
|
Peer and router discovery via the Scouting sub-protocol. |
|
Session establishment, declarations, and interests. |
|
Link management, batching, fragmentation, and keep-alive. |
|
Push, query, and reply message flows. |
|
Binary encoding rules for all protocol messages. |
|
Threat model, authentication, and access control. |
|
Glossary, formal grammar, and references. |
Status of this Document
This document specifies Zenoh protocol version 1.0.0.
It is maintained by the Eclipse Zenoh project.
This revision was derived from the legacy Zenoh protocol notes and then revalidated against the current zenoh-rust protocol definitions and codecs, with zenoh-pico used as an additional interoperability reference.
When older prose and the current implementations disagree on message layouts, extension IDs, or negotiation behaviour, this document follows the validated wire behaviour.