As the technological pendulum keeps swinging toward decentralisation, Zenoh continues to pave the way with its features. The year of 2023 was particularly rich for Zenoh users. With the addition of several new features, we have significantly improved performance, usability, and integration capabilities.
Improved Performance Metrics
With the introduction of Zenoh Bahamut, users witnessed a substantial increase in message throughput, with close to 5 million messages per second for 8-byte payloads and over 60 Gb/s for 8 Kb payloads. We reduced the latency to as little as 7 µs. This ensured that Zenoh remained one of the fastest data management solutions available.
Zenoh-Flow Data Flow Programming
We were happy to add Zenoh-Flow to the Zenoh family. It provided a data flow programming model that simplifies the development of complex data processing pipelines. It allowed for the creation of data flows that are easy to understand, maintain, and scale. With Zenoh-Flow, developers could focus on the logic of their applications without worrying about the underlying data management complexities.
Julien Loudet hosted a webinar on Zenoh-Flow to explain how it works and showed a demo. You can watch it below.
ROS 2 integration in Zenoh
ROS (the Robot Operating System) is a set of software libraries and tools that allow the building of robotic applications. ROS 2 relies mostly on the O.M.G. DDS as a middleware for communications.
While a Zenoh bridge for DDS already exists and helps a lot of robotic use cases to overcome some wireless connectivity, bandwidth and integration issues, using a bridge dedicated to ROS 2 brings a better integration of the ROS graph, ROS toolings (ros2, rviz2…). It also brings easier integration with Zenoh native applications, and more compact exchanges of discovery information between bridges.
Julien Enoch demonstrated the ROS 2 bridge during a webinar hosted in 2023, which you can watch below.
MQTT is a pub/sub protocol leveraging a broker to route the messages between the MQTT clients. In 2023, we added the MQTT plugin for Zenoh. It acts as an MQTT broker, accepting connections from MQTT clients (V3 and V5) and translating the MQTT pub/sub into a Zenoh pub/sub. This allows a close integration of any MQTT system with Zenoh, but also brings to MQTT systems the benefits of a Zenoh routing infrastructure.
Some examples of use cases are routing MQTT from the device to the Edge and to the Cloud, bridging 2 distinct MQTT systems across the Internet with NAT traversal, pub/sub to MQTT via the Zenoh REST API, MQTT-ROS2 (robot) communication, store MQTT publications in any Zenoh storage (RocksDB, InfluxDB, file system…), and MQTT record/replay with InfluxDB as storage.
In the webinar below, Julien Enoch talks about Zenoh and using its MQTT plugin to improve the performance and scalability of your systems. You can see more about plugin configuration, use cases and the code behind it.
Ultra Low Latency support
Although Zenoh is already capable of delivering very low latency (more details in this blog post talking about the performance of Zenoh, MQTT, Kafka, and DDS), we believed that we could do even better!
In 2023, we introduced the support for ultra low latency communication to address those applications that care about every single microsecond. For example, applications communicating over shared memory will greatly benefit from it and it will also be required for a new Zenoh’s high-performance SHM API we are cooking up.
Let’s Encrypt support
LetsEncrypt is a free, automated, and open certificate authority (part of the WebPKI) that provides digital certificates for enabling HTTPS (SSL/TLS) encryption on websites. In 2023, we added the support of LetsEncrypt when using Zenoh with TLS as the communication transport, unleashing an easy way to secure Zenoh communications.
We wrote a comprehensive guide on how to use LetsEncrypt with Zenoh, if you’re interested to read more.
We added the C++ API landing on zenoh-pico in addition to the already supported zenoh-c. This means you can now write your Zenoh C++ application and run it on any embedded platform supported by zenoh-pico!
Moreover, in 2023, we finally provided the full coverage of the Zenoh stable API, including shared memory support. The build for zenoh C/C++ projects was also made simpler and more flexible. Now zenoh-c, zenoh-pico and zenoh-cpp can be directly included into the parent CMake project without previous installation.
We also introduced Zenoh to the world of Kotlin and vice versa. The Zenoh Kotlin API targets the JVM environment and essentially opens the use of Zenoh to all JVM-based programming languages.
In this alpha version, you’ll find most of Zenoh’s features. You’ll be able to publish, subscribe and query data. We are now working on platform-independent packaging and Android support.
Last year, we introduced the liveliness feature that allows any Zenoh application to assert and monitor the liveliness of any other Zenoh application in the network. All Zenoh applications can declare liveliness tokens associated with some key expressions. Liveliness tokens will be seen as alive by other Zenoh applications as long as the Zenoh application that declared it is alive. This way, Zenoh applications can then query and subscribe to liveliness changes (apparition/disappearance of liveliness tokens) of liveness tokens.
We also added a transparent compression feature in 2023. The compression is performed hop to hop in the network, meaning that messages are compressed by the sending node and decompressed by the receiving node (a node being either a router, a client or a peer). This is particularly useful when communication happens on networks with limited bandwidth, like WiFi.
S3 Storage Backend Integration
Our users requested the integration of S3 storage backend. This feature allowed Zenoh to interface with Amazon S3 and MinIO, providing users with the ability to leverage cloud storage capabilities within the Zenoh ecosystem. The S3 backend can be configured for both Amazon S3 and MinIO, offering flexibility and scalability for data at rest. Our team wrote a blog post with more details about the backend systems and configuration.
From performance improvements to the introduction of Zenoh-Flow, Zenoh continues to offer a holistic solution for the cloud-to-things continuum. As we look forward to more innovations, Zenoh remains committed to providing a data management solution that is not only powerful but also flexible and easy to use.
As always, don’t take our word for it. Test it yourself. Zenoh is open-source and you can find all the Zenoh documentation on GitHub. If you have questions, join our Discord channel to talk with our engineers.
If you’re ready to step into 2024, take a look at the features we’re working on right now and planning to release this year.