39 releases (20 stable)

new 1.7.0 Dec 4, 2025
1.6.2 Oct 17, 2025
1.5.1 Sep 4, 2025
1.5.0 Jul 25, 2025
0.5.0-beta.9 Nov 24, 2021

#609 in HTTP server

Download history 4116/week @ 2025-08-13 4289/week @ 2025-08-20 4025/week @ 2025-08-27 5494/week @ 2025-09-03 4342/week @ 2025-09-10 3519/week @ 2025-09-17 4813/week @ 2025-09-24 5969/week @ 2025-10-01 6353/week @ 2025-10-08 7144/week @ 2025-10-15 5389/week @ 2025-10-22 2000/week @ 2025-10-29 618/week @ 2025-11-05 466/week @ 2025-11-12 545/week @ 2025-11-19 528/week @ 2025-11-26

2,322 downloads per month

EPL-2.0 OR Apache-2.0

1.5MB
39K SLoC

CI Documentation Status codecov Discussion Discord License License

Eclipse Zenoh

The 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.

REST Plugin for zenohd router

The plugin exposes a REST API in zenohd. The zenohd links this plugin statically, it's not necessary to install it. To activate the REST plugin the CLI argument --rest-http-port=<port> should be passed to zenohd.

The port can also be configured in the plugin configuration in the plugins section of the config.json.

"plugins": {
  "rest": {
    "http_port": 8000,
  }
}

This plugin translates PUT and DELETE REST operations into the pub/sub API and GET operations to the query/reply API.

For example:

cargo run -- --config DEFAULT_CONFIG.json5 --rest-http-port 8000
cargo run --example z_sub -- -k foo/bar
curl -X PUT -d '"Hello World!"' http://localhost:8080/foo/bar

The subscriber in z_sub example prints

>> [Subscriber] Received PUT ('foo/bar': '"Hello World!"')
cargo run --example z_queryable -- -k foo/bar
curl http://localhost:8080/foo/bar

The queryable z_get prints

>> [Queryable ] Received Query 'foo/bar'
>> [Queryable ] Responding ('foo/bar': 'Queryable from Rust!')

and curl prints

[{"key":"foo/bar","value":"UXVlcnlhYmxlIGZyb20gUnVzdCE=","encoding":"zenoh/bytes","timestamp":null}]

See also examples of using REST API for storages in the zenoh-plugin-storage-manager.

Dependencies

~38–55MB
~801K SLoC