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 is a high-performance framework for building real-time robotics and AI applications. It addresses the latency and throughput bottlenecks common in robotics middleware (like ROS2) by providing a zero-copy data plane and a declarative way to compose complex AI pipelines as directed graphs.
How it works
It uses a dataflow-oriented architecture where nodes (standalone processes) and operators (lightweight in-process functions) communicate via inputs and outputs.
- Data Plane: Built on Rust and Zenoh, it utilizes shared memory (SHM) for zero-copy transfer of large messages (>4KB), significantly reducing latency.
- Memory Format: It uses Apache Arrow natively for columnar memory, eliminating serialization overhead across different language bindings.
- Orchestration: A central Coordinator manages the lifecycle of dataflows across multiple Daemons (one per host), allowing for seamless local and distributed deployment.
- Configuration: Pipelines are defined in YAML files, allowing developers to connect nodes and specify types, environment variables, and restart policies.
Who it’s for
- Robotics Engineers: Those needing a low-latency, real-time alternative to ROS2 for sensor fusion and control.
- AI Researchers: Developers building multimodal AI agents or perception pipelines that require high-throughput data movement between Python and Rust.
- System Architects: Engineers deploying distributed AI applications across a cluster of machines.
Highlights
- Extreme Performance: 10-17x faster than ROS2 Python with flat latency for payloads up to 4MB.
- Multi-language Support: Native APIs for Rust, Python, C, and C++, allowing nodes to be mixed within a single dataflow.
- Distributed by Default: Automatic cross-machine communication via Zenoh and SSH-based cluster management.
- Developer Tooling: Includes a comprehensive CLI for real-time monitoring (
dora top), topic inspection, and record/replay capabilities for regression testing. - Node Hub: A package manager for pulling reusable, versioned AI nodes (e.g., YOLO, LLMs) directly into a dataflow.
Related
- Project
- Project
- Project
- Project
- Project