Roboflex Transport Zenoh Library
Project description
roboflex.transport.zenoh
Roboflex transport nodes powered by Zenoh. Zenoh gives us pub/sub plus automatic discovery, so we can move roboflex messages across threads, processes, and machines without needing to manage a broker manually.
any node -> ZenohPublisher ==THE_NETWORK==> ZenohSubscriber -> any node
Status
This transport mirrors the ZMQ/MQTT bindings but uses zenoh-c under the hood, with Zenoh discovery/scouting enabled by default. Nodes:
ZenohPublisher: publishes rawroboflexmessages to a Zenoh key expression.ZenohSubscriber: subscribes to a key expression and signals incoming messages. It runs its own thread (callstart()).
Build (C++)
mkdir build && cd build
cmake ..
make
Example
See examples/pub_sub_0_cpp.cpp for a simple publisher/subscriber wiring:
auto session = transportzenoh::MakeZenohSession();
transportzenoh::ZenohPublisher pub(session, "roboflex/demo");
transportzenoh::ZenohSubscriber sub(session, "roboflex/demo");
sub.start();
examples/pub_sub_config_cpp.cpp shows a more explicit setup: setting mode/explicit endpoints, turning off multicast scouting, using express/priority publisher settings, and allowing any origin on the subscriber.
Python
Python bindings mirror the C++ API (ZenohSession, ZenohPublisher, ZenohSubscriber). Build via pip install . from the repo root after building the C++ library, like the other transport packages.
Configuration knobs
ZenohSession: accepts an optionalconfig_json(JSON/JSON5 matching the Zenoh config schema), explicitmode(peer,client,router),connect_endpoints,listen_endpoints, andenable_multicast_scoutingtoggle.ZenohPublisher: opts forexpress(no batching),priority, andallowed_destination(seezc_locality_t).ZenohSubscriber: acceptsallowed_origin(alsozc_locality_t).- Key expressions follow Zenoh’s rules and support wildcards; see Zenoh key expressions.
System Dependencies
None beyond what the build pulls automatically: roboflex_core and zenoh-c are fetched via CMake FetchContent.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file roboflex_transport_zenoh-0.1.3.tar.gz.
File metadata
- Download URL: roboflex_transport_zenoh-0.1.3.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3d297c8f768f2f1133873d857137635204dc8e62805f7523a3cad48154dd152
|
|
| MD5 |
8ecd3b85ccaed41a9be628c199fe9692
|
|
| BLAKE2b-256 |
31ce551fa54cb96d49d797a072b238289ea113a1589c6573515daaf6b9905fa0
|
File details
Details for the file roboflex_transport_zenoh-0.1.3-cp311-cp311-macosx_15_0_arm64.whl.
File metadata
- Download URL: roboflex_transport_zenoh-0.1.3-cp311-cp311-macosx_15_0_arm64.whl
- Upload date:
- Size: 4.6 MB
- Tags: CPython 3.11, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b4392690154096abb9f6707bd86ae15f2ad2eae125d929f2ceaebf1dc0cde19
|
|
| MD5 |
f6f893e4143f14737667372a53f055ed
|
|
| BLAKE2b-256 |
0a384480e1462bd5ed80ba92a58188f69937ebca86a9d2ec96ced17a251917f2
|