dora-rs/dora
DORA (Dataflow-Oriented Robotic Architecture) is middleware designed to streamline and simplify the creation of AI-based robotic applications. It offers low latency, composable, and distributed dataflow capabilities. Applications are modeled as directed graphs, also referred to as pipelines.
What it solves
Dora provides a high-performance framework for building real-time robotics and AI applications. It addresses the latency and throughput bottlenecks often found in traditional robotics frameworks (like ROS2 Python) by utilizing a Rust-based core and zero-copy shared memory communication, making it suitable for data-heavy AI pipelines.
How it works
Dora uses a dataflow-oriented architecture where applications are defined as directed graphs in YAML files. Nodes (standalone processes) or operators (lightweight in-process functions) are connected via typed inputs and outputs.
Technically, it employs:
- Zenoh SHM data plane: Allows nodes to publish data directly via shared memory, bypassing the daemon for lower latency.
- Apache Arrow: Uses a columnar memory format end-to-end to eliminate serialization overhead.
- Distributed Orchestration: A Coordinator manages the lifecycle of dataflows across multiple Daemons (one per host), enabling seamless local and cross-machine communication.
Who it’s for
It is designed for robotics and AI engineers who need to build complex, real-time systems that require high throughput (e.g., for camera feeds or LLM outputs) and support for multiple languages (Rust, Python, C, C++).
Highlights
- Extreme Performance: 10-17x faster than ROS2 Python with zero-copy shared memory for large payloads.
- Multi-language Support: Native APIs for Rust, Python, C, and C++ allowing mixed-language dataflows.
- Production-Ready Tooling: Includes fault tolerance (restart policies), distributed cluster management, and OpenTelemetry integration for tracing and metrics.
- Observability: Built-in TUI for resource monitoring (
dora top), topic inspection, and record/replay capabilities for regression testing. - Node Hub: A package manager for pulling reusable, versioned nodes (e.g., YOLO, LLMs) into a project.
Related
- Project
- Project
- Project
- Project
- Project