40 releases (22 stable)
| 1.7.2 | Jan 8, 2026 |
|---|---|
| 1.7.1 | Dec 10, 2025 |
| 1.6.2 | Oct 17, 2025 |
| 1.5.0 | Jul 25, 2025 |
| 0.6.0-beta.1 | Sep 29, 2022 |
#1279 in Network programming
737 downloads per month
2MB
42K
SLoC
Eclipse Zenoh
Eclipse Zenoh: Zero Overhead Pub/Sub, Store/Query and Compute.
Zenoh (pronounce /zeno/) unifies data in motion, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
Check the website zenoh.io for more information and installation instructions.
See also the roadmap for more detailed technical information.
Zenoh router
zenohd is a daemon router whose purpose is to build Zenoh infrastructure. Technically, zenohd is the Zenoh runtime with a plugin manager.
Command Line Arguments
Core Options
-
-c, --config <PATH>
The configuration file. Currently, this file must be a valid JSON5 or YAML file.The commented example configuration file for
zenohdis in the documentation. -
-l, --listen <ENDPOINT>
Locators on which this router will listen for incoming sessions. Repeat this option to open several listeners. -
-e, --connect <ENDPOINT>
A peer locator this router will try to connect to. Repeat this option to connect to several peers. -
-i, --id <ID>
The identifier (as a hexadecimal string, with an odd number of chars - e.g.: A0B23...) that zenohd must use. If not set, a random unsigned 128-bit integer will be used. WARNING: this identifier must be unique in the system and must be 16 bytes maximum (32 chars)!
Plugin Management
-
-P, --plugin <PLUGIN>
A plugin that MUST be loaded. You can give just the name of the plugin; zenohd will search for a library namedlibzenoh_plugin_<name>.so(exact name depending on the OS). Alternatively, you can provide a string in this format:<plugin_name>:<library_path>. Repeat this option to load several plugins. If loading fails, zenohd will exit. -
--plugin-search-dir <PATH>
Directory in which to search for plugin libraries to load. Repeat this option to specify several search directories. -
--rest-http-port <SOCKET>
Enables REST API plugin and configures HTTP interface for it. Accepted values:- a port number
- a string with format
<local_ip>:<port_number>(to bind the HTTP server to a specific interface)
Behavioral Options
-
--no-timestamp
By default, zenohd adds a HLC-generated Timestamp to each routed Data if there isn't already one. This option disables this feature. -
--no-multicast-scouting
By default, zenohd replies to multicast scouting messages to be discovered by peers and clients. This option disables this feature.
Advanced Configuration
-
--cfg <CFG>
Allows arbitrary configuration changes as colon-separated KEY:VALUE pairs, where the empty key is used to represent the entire configuration:- KEY must be a valid config path, or an empty string if the whole configuration is defined
- VALUE must be a valid JSON5 string that can be deserialized to the expected type for the KEY field
Examples:
--cfg='startup/subscribe:["demo/**"]'--cfg='plugins/storage_manager/storages/demo:{key_expr:"demo/example/**",volume:"memory"}'--cfg=':{metadata:{name:"My App"},adminspace:{enabled:true,permissions:{read:true,write:true}}'
-
--adminspace-permissions <[r|w|rw|none]>
Configure the read and/or write permissions on the admin space. Default is read only.
Help & Version
-
-h, --help
Print help (see a summary with '-h'). -
-V, --version
Print version.
Plugins
[!WARNING] As Rust doesn't have a stable ABI, plugins should be built with the exact same Rust version as
zenohd, and should use the same version (or commit number) of thezenohdependency aszenohdwith the same set of features. A plugin compiled with a different Rust version or with a different set ofzenohcrate features will be rejected whenzenohdattempts to load it. Otherwise, incompatibilities in memory mapping of structures shared betweenzenohdand the library could lead to a"SIGSEGV"crash.
The Zenoh router is delivered with two statically linked plugins:
-
zenoh-plugin-rest is the plugin exposing a REST API
-
zenoh-plugin-storage-manager is the plugin that manages backends and storages
There are other plugins in independent repositories:
-
Bridges DDS with Zenoh.
-
Implements an HTTP server mapping URLs to zenoh keys.
-
The WebSocket server supporting TypeScript API
Dependencies
~35–70MB
~1M SLoC