Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 1.94 KB

README.md

File metadata and controls

9 lines (5 loc) · 1.94 KB

This is the old proof-of-concept for Zenoh. It still offers some interesting tricks, but it doesn't even come close to giving you all you get with the new Zenoh. Chances are you're looking for https://github.com/eclipse-zenoh/zenoh-pico. But if perchance you are looking for a proof-of-concept of a peer-to-peer publish-subscribe system without any call to malloc or free, then do read on.

Zeno-He (zhe for short) is a compact implementation of the Zenoh protocol that does not depend on dynamic allocation or threading. Instead, it is a non-blocking implementation that assumes single threaded use with polling, and a system that can be sized at compile time. Zhe can be configured to operate in peer-to-peer mode or to operate as a client that relies on a broker.

Targeted configurations vary from a minimal client on an Arduino Uno (an 8-bit CPU with only 2kB of RAM) to a bunch of low-power, high-integrity CPUs running a real-time, distributed control system, and on to dozens of peers running on high-end CPUs and saturating a fast network. Whether it will actually meet all these requirements remains to be seen. Still, so far, so good.

Zhe does not call any operating system functions directly (its use of the standard library is currently limited to mem*, strlen and isalnum). It does rely on a small abstraction layer for sending a message without blocking (it may of course be dropped), comparing addresses and converting an address to text. What constitutes sending data on a network or what an address looks like is deliberately left undefined.

Please note that it is currently a research project under active development. Only the basic functionality supported by the Zenoh protocol has so far been implemented, and still missing are several features we consider important, such as selections and transient data support. These will be implemented in the near future. Furthermore, none of the settings are final, and everything can (and probably will) still change.