To me, TCPROS is an example of open protocol - it provides specification, you can implement its own client and communicate with any ROS1 nodes over it.
DDS is also example of open protocol - it provides specification, you can implement its own client and communicate with any ROS2 nodes over it (examples of such clients are FastDDS, CycloneDDS, …).
Since Zenoh stands for “Zero Overhead Network Protocol” I was looking for any specification how this protocol works but could not find any.
Could someone point me please for such specification or if it does not exist would it mean that it is “closed protocol” and users can communicate with it only through clients which only Zenoh itself provides?
This seems important, as I could see that ROS leaning towards Zenoh to be default RMW in future (especially after watching ROSCon2024 )
Just to summarize: If Zenoh is open protocol, could someone point me please for its specification
Zenoh is an open protocol, at this stage the spec is the code. That said, there are two different implementations of the Zenoh protocol one in Rust and one in C. These implementations are done from different teams (yes two different teams in ZettaScale) and are also used to ensure interoperability of independent implementation of the protocol.
These along with the Wireshark plugin make it relatively easy to write other implementations of the protocol – and some researchers have done that already.
Now that we have released the Zenoh 1.x protocol we are considering to eventually write an open source specification – that is in the TODO list. But as you can imagine the questions is always: do we spend our time to writing a spec or to develop innovations relevant to Zenoh users? Thus far the Zenoh community has favored innovations.
Yes, Zenoh has brought many innovations indeed and we are happy with our Zenoh experience so far. I want to give a thumbs up for writing the specification, too. This would mark an important stage for Zenoh’s maturity.
Thanks for the discussion on this topic. I’m interested in Zenoh as well, and am fairly new to the ROS world…
It seems like Zenoh is in the exciting initial stages of development. At some point, hopefully the technology will solidify into a dependable architecture.
Has there been any consideration towards becoming a Standard, which would help allay fears of having one company control or impose licensing on what would be a foundational technology? Either IETF or ISO for example…
Hello @mbells, it is worth pointing out that Zenoh is an Eclipse Foundation project. This ensures an open, meritocratic and transparent governance along with guarantees on IP and patents, i.e. no infringements. Please notice how this is a much stronger guarantee than just an Open Source License and a GitHub repository, for which there may not be an open/transparent governance nor any guarantees on IP or patents.
Additionally, there are important standardization organizations such as the International Telecommunication Union that after years of evaluations of existing protocols, has recommended Zenoh as the protocol to adopt for Intelligent Transportation System (see FGAI4AD).