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 contains the Go bindings for Zenoh.
Before building and running the examples, you need to have the following dependencies installed:
- Zenoh-C: The C implementation of the Zenoh protocol.
You can follow the instructions provided in the Zenoh-C repository to install zenoh-c. It is required that zenoh-c is built with unstable features support (i.e. with -DZENOHC_BUILD_WITH_UNSTABLE_API=ON cmake flag).
This project includes several examples located in the examples directory. Each example is in a subdirectory prefixed with z_. You can build all the examples using the provided Makefile.
To build all examples, simply run:
make allThis command will compile all the examples and place the binaries in the bin directory.
To build a specific example, use the example's name. For instance, to build the z_pub example:
make z_pubAfter building the examples, you can run them from the bin directory.
Description of each example can be found here.
To run a specific example, navigate to the bin directory and execute the binary. For example, to run the z_pub example:
./bin/z_pubYou can also run the examples directly using go run without building the binaries. For example, to run the z_sub example:
go run examples/z_pub/z_pub.goexamples/: This directory contains all the example subdirectories. Each example has its own subdirectory prefixed withz_.bin/: This directory will contain the compiled binaries for the examples.
The provided Makefile includes the following targets:
all: Builds all the examples.fmt: Formats the source code usinggo fmt.clean: Cleans up all generated binaries.
- Build all binaries:
make all - Build specific binary:
make <example_name> - Format the source code:
make fmt - Clean up binaries:
make clean
