ros-z

Native Rust ROS 2 implementation powered by Eclipse Zenoh.
High-performance robotics communication with type safety
and zero-cost abstractions.

Get started Core concepts

Native Rust

Pure Rust — no C/C++ dependencies. Memory safety, fearless concurrency, and zero-cost abstractions guaranteed at compile time.

No ROS Installation Needed

No apt install ros-*, no colcon workspace, no setup.bash. Add ros-z as a Cargo dependency and start building — ROS 2 messages and interfaces are bundled.

ROS 2 Compatible

Full wire compatibility with standard ROS 2 nodes via rmw_zenoh_cpp. Pub/sub, services, and actions all interoperate out of the box.

Lifecycle Nodes

Full ROS 2 managed node lifecycle — configure, activate, deactivate, and clean up nodes with the standard state machine and lifecycle events.

Parameter Subsystem

Full ROS 2 parameter server with typed parameters, dynamic reconfiguration, parameter events, and a Python/Rust client API.

Clock & Simulation Time

System and simulated clock primitives (ZClock), clock-aware sleep and periodic intervals (ZInterval). Switch modes programmatically for deterministic testing.

Cross-Distro Bridge

Bridging between ROS 2 Humble and Jazzy over Zenoh — let different distros communicate transparently on the same network.

Multi-Language Bindings

Python bindings (PyO3 + full actions/SHM/graph), Go bindings, PEP 561 type stubs, and an RMW implementation for standard ROS 2 C++/Python nodes.

Zenoh Transport

High-performance pub/sub engine with router-based discovery, shared memory (SHM) for zero-copy intra-host transfers, and flexible key expression routing.

Flexible Serialization

CDR by default for full ROS 2 wire compatibility. Opt into Protobuf for schema evolution and cross-language data exchange — per topic, per publisher.

Architecture

ros-z provides three integration paths to suit different use cases.

Ready to build faster, safer robotics?

Get ros-z running in under 5 minutes with the Quick Start guide.

Quick Start GitHub