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 and the roadmap for more detailed information.
This repository provides a Python binding based on the main Zenoh implementation written in Rust.
The Eclipse zenoh-python library is available on Pypi.org.
Install the latest available version using pip
:
pip install eclipse-zenoh
To install the latest nightly build of the development version do:
pip install eclipse-zenoh-nightly
pip
to be able to build this source distribution, there are some prerequisites:
pip
version 19.3.1 minimum (for full support of PEP 517). (if necessary upgrade it with command:'sudo pip install --upgrade pip'
)- Have a Rust toolchain installed (instructions at https://rustup.rs/)
zenoh-python has been tested with Python 3.7, 3.8, 3.9 and 3.10.
It relies on the zenoh Rust API which require the full std
library. See the list Rust supported platforms here: https://doc.rust-lang.org/nightly/rustc/platform-support.html .
⚠️ WARNING⚠️ : Zenoh and its ecosystem are under active development. When you build from git, make sure you also build from git any other Zenoh repository you plan to use (e.g. binding, plugin, backend, etc.). It may happen that some changes in git are not compatible with the most recent packaged Zenoh release (e.g. deb, docker, pip). We put particular effort in mantaining compatibility between the various git repositories in the Zenoh project.
Requirements:
-
Python >= 3.7
-
pip >= 19.3.1
-
(Optional) A Python virtual environment (for instance virtualenv or miniconda)
-
Rust and Cargo. If you already have the Rust toolchain installed, make sure it is up-to-date with:
$ rustup update
Steps:
-
Install developments requirements:
pip install -r requirements-dev.txt
-
Ensure your system can find the building tool
maturin
(installed by previous step). For example, it is placed at $HOME/.local/bin/maturin by default on Ubuntu 20.04.export PATH="$HOME/.local/bin:$PATH"
-
Build and install zenoh-python:
- With a virtual environment active:
maturin develop --release
- Without one:
maturin build --release pip install ./target/wheels/<there should only be one .whl file here>
The simplest way to run some of the example is to get a Docker image of the zenoh network router (see https://github.com/eclipse-zenoh/zenoh#how-to-test-it) and then to run the examples on your machine.
Then, run the zenoh-python examples following the instructions in examples/README.md