Robot middleware rebuilt as a Rust dataflow graph
It exists because stitching AI perception, planning, and hardware into low-latency pipelines with ROS2 Python often hits serialization and throughput walls.
What it does
Dora models robotic applications as directed graphs of nodes—perception, planning, or hardware I/O linked by typed inputs and outputs. It handles local shared-memory IPC between co-located nodes and automatically falls back to Zenoh pub-sub when nodes span machines. A single CLI manages the full lifecycle from local development to distributed cluster deployment, including hot reload, record/replay, and live topology changes.
The interesting bit
The project is built and maintained with “agentic engineering”: AI agents generate, review, and refactor code, while humans set direction and gate every merge. Under the hood, it uses Apache Arrow end-to-end for columnar memory, which eliminates serialization overhead across Rust, Python, C, and C++ bindings.
Key highlights
- Claims 10–17× faster throughput than ROS2 Python for payloads between 4 KB and 4 MB, using zero-copy shared memory via Zenoh.
- Supports mixed-language nodes (Rust, Python, C, C++) with native APIs in the same dataflow, plus reusable sub-graph modules composed in YAML.
- Offers soft real-time scheduling with
SCHED_FIFO, memory locking, and per-node CPU affinity pinning. - Includes built-in observability: OpenTelemetry tracing and metrics, a
dora topTUI for per-node resource monitoring, and.drecrecord/replay for regression testing. - Provides a ROS2 bridge for bidirectional topic, service, and action interop.
Caveats
- Running dataflow reclamation after a coordinator restart is only partially implemented; the project points to open issues for the remaining gaps.
Verdict
Robotics developers hitting latency walls in Python-centric stacks should evaluate this, especially if they need distributed deployments or mixed-language nodes. Teams already happy with tightly coupled, single-process robot control probably don’t need the overhead.
Frequently asked
- What is dora-rs/dora?
- It exists because stitching AI perception, planning, and hardware into low-latency pipelines with ROS2 Python often hits serialization and throughput walls.
- Is dora open source?
- Yes — dora-rs/dora is open source, released under the Apache-2.0 license.
- What language is dora written in?
- dora-rs/dora is primarily written in Rust.
- How popular is dora?
- dora-rs/dora has 4k stars on GitHub.
- Where can I find dora?
- dora-rs/dora is on GitHub at https://github.com/dora-rs/dora.