zenoh unifies data in motion, data in-use, 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.
The Eclipse zenoh: Zero Overhead Pub/sub, Store/Query and Compute.
Eclipse zenoh /zeno/ unifies data in motion, data in-use, 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 detailed information.
Install Cargo and Rust. Currently, zenoh requires a nightly version of Rust, type the following to install it after you have followed the previous instructions:
$ rustup default nightly
And then build zenoh with:
$ cargo build --release --all-targets
For convenience, the zenoh router is pre-build and made available in a Docker image: https://hub.docker.com/r/eclipse/zenoh
Thus, run it just doing:
bash docker pull eclipse/zenoh:latest docker run --init -p 7447:7447/tcp -p 7447:7447/udp -p 8000:8000/tcp eclipse/zenoh:latest
The ports used by zenoh are the following:
All the examples are compiled into the
target/release/examplesdirectory. They can all work in peer-to-peer, or interconnected via the zenoh router (
Then, you can test it using the zenoh API in your favorite language:
Or with the REST API:
The complete Eclipse zenoh's key/value space is accessible through the REST API, using regular HTTP GET, PUT and DELETE methods. In those examples, we use the curl command line tool.
/demo/example/**: ``` curl -X PUT -H 'content-type:application/properties' -d 'path_expr=/demo/example/**' http://localhost:8000/@/router/local/plugin/storages/backend/memory/storage/my-storage
### Put/Get into zenoh Assuming the memory storage has been added, as described above, you can now:
curl -X PUT -d 'Hello World!' http://localhost:8000/demo/example/test