Repolode
dora-rs

dora-rs/dora

A 100% Rust middleware framework for building real-time robotics and AI applications as directed dataflow graphs of nodes.

Stars
4,034
Forks
463
Open issues
111
Last commit
5 hours ago

What is it?

Dora (Dataflow-Oriented Robotic Architecture) is a framework for building robotics and AI applications out of independent nodes connected in a directed graph. Each node is a separate process written in Rust, Python, C, or C++, and nodes exchange data through typed inputs and outputs declared in a YAML file. The framework handles spawning, message routing, and lifecycle management across one or several machines.

For data-heavy workloads such as camera frames or point clouds, dora uses zero-copy shared memory between co-located nodes and Zenoh for cross-machine communication. Messages are carried in Apache Arrow format. The CLI covers running dataflows locally, starting a coordinator and daemons for distributed use, and inspecting topics, logs, and resource usage. It also supports recording and replaying messages, restart policies per node, and a ROS2 bridge.

Dora also includes a node hub for pulling in reusable nodes such as cameras, YOLO detectors, LLM and TTS nodes by version, along with an in-process operator model for lightweight transformations.

Key features

  • 01Dataflows defined as directed graphs in declarative YAML, with nodes written in Rust, Python, C, or C++.
  • 02Zero-copy shared memory between nodes on the same machine and Zenoh pub-sub across machines.
  • 03Apache Arrow message format end to end.
  • 04Single CLI for local runs, distributed clusters, logs, topic inspection, and resource monitoring.
  • 05Record and replay of dataflow messages, plus per-node restart policies.
  • 06ROS2 bridge for topics, services, and actions.

Use cases

  • Building a robot perception pipeline that chains camera capture, object detection, and visualization nodes.
  • Connecting Python AI models with Rust or C++ control components in one dataflow.
  • Running a multi-machine robot or sensor system with coordinated node lifecycles.
  • Bridging an existing ROS2 system with new AI-driven nodes.

Quick start

  1. 1

    Install the dora CLI from crates.io

    cargo install dora-cli
  2. 2

    Install the Python node API and example dependencies

    pip install dora-rs numpy pyarrow
  3. 3

    Clone the repository and enter its directory

    git clone https://github.com/dora-rs/dora.git && cd dora
  4. 4

    Run the Python sender-transformer-receiver example dataflow

    dora run examples/python-dataflow/dataflow.yml

Things to know

  • The Node Hub is marked unstable in the README.
  • Reclaiming running dataflows after a coordinator restart is only partially supported.

In collections

Topics

FAQ

What is dora?
A 100% Rust middleware framework for building real-time robotics and AI applications as directed dataflow graphs of nodes. Dora (Dataflow-Oriented Robotic Architecture) is a framework for building robotics and AI applications out of independent nodes connected in a directed graph. Each node is a separate process written in Rust, Python, C, or C++, and nodes exchange data through typed inputs and outputs declared in a YAML file. The framework handles spawning, message routing, and lifecycle management across one or several machines.
Is dora free to use? What license does it have?
dora is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is dora still maintained?
Actively maintained. The last commit to dora was on Oct 22, 2026.
What can I use dora for?
Building a robot perception pipeline that chains camera capture, object detection, and visualization nodes. Connecting Python AI models with Rust or C++ control components in one dataflow. Running a multi-machine robot or sensor system with coordinated node lifecycles. Bridging an existing ROS2 system with new AI-driven nodes.
How do I install dora?
Install the dora CLI from crates.io: cargo install dora-cli Install the Python node API and example dependencies: pip install dora-rs numpy pyarrow Clone the repository and enter its directory: git clone https://github.com/dora-rs/dora.git && cd dora Run the Python sender-transformer-receiver example dataflow: dora run examples/python-dataflow/dataflow.yml
Where can I get dora?
The source code and installation instructions are on GitHub: https://github.com/dora-rs/dora

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects