⚠️ This is a WIP Active development project: Experiment with with it, but it is Not production Ready!
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 Typscript / Javascript binding through the use of the remote-api-plugin
in this repo.
The long term plan is to use zenoh Zenoh written in Rust to target WASM.
In its current state, it is not possible to compile Zenoh (Rust) to target WASM, and will need to undergo a fair amount of refactoring before that can happen.
Docs can be accessed at Docs Link
⚠️ 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 maintaining compatibility between the various git repositories in the Zenoh project.
- Make sure that the following utilities are available on your platform.
-
Navigate to the directory
zenoh-ts
-
Run the commands:
yarn install
#
yarn run build
- Make sure that the following utilities are available on your platform.
-
Navigate to
zenoh-plugin-remote-api
-
Run
cargo build
Prerequisites:
- You have a zenoh router (
zenohd
) installed, and thezenoh_plugin_remote_api
library file is available in~/.zenoh/lib
.
- Create a
zenoh.json5
configuration file containing for example:{ plugins: { // configuration of "storage_manager" plugin: remote_api: { "websocket_port": "10000", // secure_websocket configuration is optional "secure_websocket": { "certificate_path" : "/path/to/certificate", "private_key_path" : "/path/to/private_key" } } // Optionally, add the REST plugin rest: { http_port: 8000 } } }
- Run the zenoh router with:
zenohd -c zenoh.json5
The TypeScript library can be install from the command line:
npm install @eclipse-zenoh/zenoh-ts@0.0.8
Or added via package.json
"@eclipse-zenoh/zenoh-ts": "0.0.8"
Note: In order to add this library to your project you must log into the github npm repository,
please refer to this link for more information Accessing github NPM