AC
All Issues

The Zenoh Report

November 2025

Issue #2 — Embedded Rust & Zenoh 1.6.x Imoogi


Zenoh User Meeting 2025 Announcement

The Zenoh User Meeting 2025 (#ZUM25) will take place on December 12th, from 3 PM to 6 PM CET. The event will be a hybrid gathering hosted at ZettaScale HQ in Paris and streamed live on YouTube, Twitter, and LinkedIn.

ZUM is, at its core, a celebration of our community: the brilliant minds building real systems, solving real problems, and pushing Zenoh into new territory. Whether your experience is about performance, robotics, integration, IoT, or a creative use of Zenoh, we'd love to feature your story.

You're welcome to give a short 20–25 minute talk (live or remote) on your project, lessons learned, and what Zenoh has meant in your journey. We'll take care of the logistics — you bring the story and the passion. If you're interested, please contact me by November 20th so we can reserve your slot and coordinate the session details.

Technology Highlights: Embedded Rust

Embedded Rust ecosystem overview

Rust adoption has been steadily growing to the point of becoming the leading programming language of choice for new adventures in system programming and networking. The main reasons to choose Rust are often related to its memory and concurrency safety as well as the "zero-cost" abstractions. The push toward security by design we discussed in the last installment is accelerating this trend.

Another strength, often overlooked, is Rust's support for embedded programming. Rust can be run bare-metal over an increasing number of targets in combination with Rust-based OSes such as RTIC, TockOS, OxideOS, and ArielOS, or on C/C++ based OSes such as FreeRTOS and Zephyr. Embedded async Rust applications can also leverage the Embassy executor and its ecosystem to run essentially bare-metal and reduce the footprint and latency when compared to a traditional embedded OS.

Hardware support has been steadily expanding and maturing. ARM support is relatively strong, and recently Espressif announced the release of esp-hal 1.0.0: an officially supported bare-metal (no_std) hardware abstraction for Espressif devices, including some support for RISC-V-based ESPs. This marks the first officially supported Rust HAL from a hardware vendor — a key milestone for commercial adoption.

Essential references for Embedded Rust:

  • The Embedded Rust Book — The definitive guide for embedded Rust development, maintained by the Rust Embedded Working Group. Covers development environment setup, best practices, and effective patterns for embedded software development.
  • The Discovery Book — Hands-on introductory course for microcontroller-based embedded systems using Rust. Three versions targeting: micro:bit v2 (latest), micro:bit v1, and STM32F3Discovery.
  • Embedded Rust Bookshelf — Central hub for all official embedded Rust documentation maintained by the Embedded Working Group.
  • ESP-HAL Documentation — If you are targeting ESP hardware, the Rust and Embedded Rust on ESP resources are the right place to start.

Release Tracker: Zenoh 1.6.x — Imoogi

Zenoh 1.6.x is codenamed Imoogi — after the Korean dragon that ascends to greatness. This release elevates the Zenoh ecosystem with key refinements and critical improvements. Imoogi focuses on stabilising and extending the groundbreaking features introduced in version 1.5.0, bringing enhanced shared memory capabilities, improved configuration management, better scalability, and expanded language binding support.

Key highlights:

  • Shared Memory — Typed buffers, better allocators, flexible builders, buffer resizing, implicit SHM optimisations for large payloads, and pre-commit pages — all delivering major throughput gains.
  • Configuration — Improved configuration parameters and enhanced downsampling controls.
  • API — Full SHM API in Zenoh-Python, major updates in Zenoh-C and Zenoh-TS, and streamlined plugin interfaces.
  • Zenoh-Pico — Advanced Pub/Sub support with TLS security, bringing enterprise-grade security and reliability features to constrained devices.
  • Scalability — Fixed critical peer-to-peer topology issues and optimised discovery message processing, drastically reducing CPU consumption especially for ROS 2 use cases.
  • Zenoh Shell (NuZe) — Combines Nushell's powerful structured data scripting with Zenoh commands, providing a convenient tool for testing, debugging, and building interactive Zenoh applications.
  • Documentation — Significantly improved the Rust documentation and expanded with usage examples and cross-references; improved README.

The next minor release of the 1.6.x series will bring a few more improvements, including support for weighted graph routing.

New Projects — zenoh-nostd

Following its demonstration at ROSCon25, we have now made zenoh-nostd publicly available. This is an implementation of Zenoh targeting Rust no-std and no-alloc environments. The implementation currently supports Pub/Sub — Queries will be landing before the end of the year. The current implementation leverages Embassy, but we plan to provide both a sync and an async version of the stack. Give it a try and let us know your thoughts!

Tip of the Month: Zenoh on WiFi Routers

Zenoh on WiFi router deployment diagram
Zenoh running on a WiFi access point — halving air-time usage and enabling locality-aware routing.

Many of you have seen me running Zenoh routers on WiFi routers and asked how to replicate it.

Running Zenoh directly on the WiFi router minimises air-time usage. When an application talks to a Zenoh router running elsewhere, the WiFi router must receive the traffic and forward it — consuming air-time twice. Running Zenoh on the access point itself halves this overhead, which is especially valuable when the router must forward data to many clients.

With this kind of deployment you can optimise the use of air-time for communication and thus optimise the throughput of your WiFi. Additionally, if you have multiple wireless access points you can route across them through Zenoh over a fixed network, making it easy to scale your system and exploit locality.

Steps to get this running:

  • Get a WiFi Router supported by OpenWRT (see toh.openwrt.org)
  • Check if the relevant target for your router is supported by the Rust compiler
  • Install OpenWRT on your WiFi Router
  • Cross-compile the Zenoh router:
cargo install cross --git https://github.com/cross-rs/cross
cross build --target=YOUR_TARGET_HERE --release --bin zenohd

For the OpenWRT One:

cross build --target=aarch64-unknown-linux-musl --release --bin zenohd

For ARM7 routers use target `armv7-unknown-linux-musleabihf` or `armv7-unknown-linux-musleabi`.

  • Copy over the binary and run it. Ideally ensure the Zenoh router is started as a service when the WiFi router boots.

Community Spotlight

The number of Zenoh related projects keeps growing steadily. This month highlights the Awesome Zenoh repository, which tracks community projects. If you want your project featured, simply submit a Pull Request.

Hot from the Press

  • "A look at the Robot Operating System" — A nice article on ROS 2 from Chris Lalancette explaining Zenoh's benefits in robotics.
  • "Designing for Distributed Heterogeneous Modularity: On Software Architecture and Deployment of the MoonBots" — An article comparing Zenoh and DDS in supporting moon exploration robots.
  • "We're rolling out Zenoh RMW in production!" — Dexory announces that they are rolling Zenoh into production.

Events

  • ROSCon FR & DE 2025 — 17–20 November 2025, Strasbourg, France
  • ROSCon India 2025 — 18–20 December 2025, Pune, India