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