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

Introduction

Goals, non-goals, and high-level overview of the protocol.

Concepts

Core abstractions: key expressions, entities, QoS, and value encoding.

Architecture

System roles, network topologies, and routing.

Scouting

Peer and router discovery via the Scouting sub-protocol.

Session

Session establishment, declarations, and interests.

Transport

Link management, batching, fragmentation, and keep-alive.

Data Plane

Push, query, and reply message flows.

Wire Format

Binary encoding rules for all protocol messages.

Security

Threat model, authentication, and access control.

Appendix

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.