Eclipse Zenoh: Zero Overhead Pub/Sub, Store/Query and Compute.
Zenoh (pronounced /zeno/) unifies data in motion, data at rest, and computations. It carefully blends traditional pub/sub with geo-distributed storage, 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.
This repository contains the following elements:
-
zenoh Rust crate
This crate is the primary and reference implementation of the Zenoh protocol. The Zenoh libraries for other languages are bindings to this Rust implementation, except for the pure-C zenoh-pico (see the "Language Support" section below).
-
zenoh-ext Rust crate
This crate contains extended components of Zenoh:
AdvancedPublisher/AdvancedSubscriber- APIs for sending/receiving data with advanced delivery guarantees.- Data serialization support. This serialization is lightweight and universal for all
zenohbindings, which simplifies interoperability.
-
zenohd router binary
The Zenoh router is a standalone daemon used to support Zenoh network infrastructure.
-
The crates related to plugin support in
zenohd. -
The internal crates used by
zenoh. These crates are not intended to be imported directly, and their public APIs can be changed at any time. Stable APIs are provided byzenohandzenoh-extonly. -
Zenoh usage examples. These examples have a double purpose: they not only demonstrate writing Zenoh applications in Rust but also serve as a set of tools for experimenting with and testing Zenoh functionality.
Install Cargo and Rust. If you already have the Rust toolchain installed, make sure it is up to date with:
rustup updateZenoh can be successfully compiled with Rust stable (>= 1.75.0), but some of its dependencies may require newer Rust versions. The
