Thanks to visit codestin.com
Credit goes to lib.rs

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

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

737 downloads per month

EPL-2.0 OR Apache-2.0

2MB
42K SLoC

CI Documentation Status codecov Discussion Discord License License

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 zenohd is 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 named libzenoh_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 the zenoh dependency as zenohd with the same set of features. A plugin compiled with a different Rust version or with a different set of zenoh crate features will be rejected when zenohd attempts to load it. Otherwise, incompatibilities in memory mapping of structures shared between zenohd and the library could lead to a "SIGSEGV" crash.

The Zenoh router is delivered with two statically linked plugins:

There are other plugins in independent repositories:

Dependencies

~35–70MB
~1M SLoC