
dora-rs (Dataflow-Oriented Robotic Architecture) is a modern robotics middleware built from the ground up in Rust. It implements a declarative dataflow paradigm where robotic applications are modeled as directed graphs of isolated processes communicating through zero-copy shared memory.
The framework addresses a critical gap in robotics infrastructure: while ROS2 has become the de facto standard, its performance limitations become apparent in AI-driven applications requiring high-frequency data exchange between multiple sensors, ML models, and actuators. dora-rs achieves 10-17x lower latency than ROS2 by using Apache Arrow for memory-efficient message passing and a custom shared memory daemon that eliminates serialization overhead.
At its core, dora-rs orchestrates communication between robotic components called "nodes." Each node runs as an isolated process, communicating through well-defined inputs and outputs specified in a YAML dataflow configuration. This architecture provides several advantages:
The framework includes a growing ecosystem of pre-built nodes in the dora-hub repository, covering common robotics tasks like camera capture, object detection (YOLO), LLM inference, and visualization.
Communication happens through two mechanisms:
The use of Apache Arrow as the message format is particularly significant for AI workloads. Arrow's columnar memory format allows zero-copy data sharing between processes, meaning a camera node can pass image data to a YOLO detection node without copying the pixel buffer.
dora-rs includes a ROS2 bridge that enables interoperability with existing ROS2 ecosystems. This allows gradual migration paths where dora-rs nodes can communicate with ROS2 topics, and ROS2 message types can be converted to/from Arrow arrays.