All Projects → eclipse-zenoh → Zenoh

eclipse-zenoh / Zenoh

Licence: other
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.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Zenoh

Drago
A flexible configuration manager for Wireguard networks
Stars: ✭ 204 (+12.09%)
Mutual labels:  iot, networking, edge-computing
Libcanard
A compact implementation of the UAVCAN/CAN protocol in C for high-integrity real-time embedded systems
Stars: ✭ 151 (-17.03%)
Mutual labels:  robotics, protocol, embedded
Deviceplane
Open source device management for embedded systems and edge computing
Stars: ✭ 917 (+403.85%)
Mutual labels:  iot, edge-computing, embedded
Yomo
🦖 Streaming-Serverless Framework for Low-latency Edge Computing applications, running atop QUIC protocol, engaging 5G technology.
Stars: ✭ 279 (+53.3%)
Mutual labels:  iot, networking, edge-computing
Utensor cgen
C++ code generator for uTensor https://utensor-cgen.readthedocs.io/en/latest/
Stars: ✭ 42 (-76.92%)
Mutual labels:  iot, edge-computing, embedded
Utensor
TinyML AI inference library
Stars: ✭ 1,295 (+611.54%)
Mutual labels:  iot, edge-computing, embedded
Pjon
PJON (Padded Jittering Operative Network) is an experimental, arduino-compatible, multi-master, multi-media network protocol.
Stars: ✭ 2,615 (+1336.81%)
Mutual labels:  iot, protocol, embedded
Wasm3
🚀 The fastest WebAssembly interpreter, and the most universal runtime
Stars: ✭ 4,375 (+2303.85%)
Mutual labels:  iot, edge-computing, embedded
Awareness
The new architecture of co-computation for data processing and machine learning.
Stars: ✭ 11 (-93.96%)
Mutual labels:  iot, networking, protocol
Mqtt
MQTT broker written in D, using vibe.d
Stars: ✭ 59 (-67.58%)
Mutual labels:  iot, networking, protocol
Mainflux
Industrial IoT Messaging and Device Management Platform
Stars: ✭ 1,341 (+636.81%)
Mutual labels:  messaging, iot, edge-computing
Ruffles
Lightweight and fully managed reliable UDP library.
Stars: ✭ 131 (-28.02%)
Mutual labels:  networking, protocol
Qdriverstation
Cross-platform clone of the FRC Driver Station
Stars: ✭ 133 (-26.92%)
Mutual labels:  robotics, networking
Szl
A lightweight, embeddable scripting language
Stars: ✭ 134 (-26.37%)
Mutual labels:  iot, embedded
Lib Python
Blynk IoT library for Python and Micropython
Stars: ✭ 140 (-23.08%)
Mutual labels:  iot, embedded
Awesome Micropython
Curated list of awesome MicroPython resources
Stars: ✭ 120 (-34.07%)
Mutual labels:  iot, embedded
Chino Os
A real time operating system for IoT written in C++
Stars: ✭ 139 (-23.63%)
Mutual labels:  iot, embedded
Grisp
GRiSP Erlang Runtime Library
Stars: ✭ 141 (-22.53%)
Mutual labels:  iot, embedded
Baetyl
Extend cloud computing, data and service seamlessly to edge devices.
Stars: ✭ 1,655 (+809.34%)
Mutual labels:  iot, edge-computing
Wolfssh
wolfSSH is a small, fast, portable SSH implementation, including support for SCP and SFTP.
Stars: ✭ 142 (-21.98%)
Mutual labels:  iot, embedded

zenoh banner

CI Documentation Status Gitter License License

Eclipse zenoh

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.


How to build it

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

How to test it

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:

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:

  • 7447/tcp : the zenoh protocol via TCP
  • 7447/udp : the zenoh scouting protocol using UDP multicast (for clients to automatically discover the router)
  • 8000/tcp : the zenoh REST API

All the examples are compiled into the target/release/examples directory. They can all work in peer-to-peer, or interconnected via the zenoh router (target/release/zenohd).

Then, you can test it using the zenoh API in your favorite language:

Or with the REST API:

Examples of usage 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.

Managing the admin space

  • Get info of the local zenoh router:
    curl http://localhost:8000/@/router/local
    
  • Get the backends of the local router (only memory by default):
    curl 'http://localhost:8000/@/router/local/**/backend/*'
    
  • Get the storages of the local router (none by default):
    curl 'http://localhost:8000/@/router/local/**/storage/*'
    
  • Add a memory storage on /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:

  • Put a key/value into zenoh:
curl -X PUT -d 'Hello World!' http://localhost:8000/demo/example/test
  • Retrieve the key/value:
curl http://localhost:8000/demo/example/test
  • Remove the key value
curl -X DELETE http://localhost:8000/demo/example/test
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].