<img src="https://raw.githubusercontent.com/dora-rs/dora/main/docs/src/logo.svg" width="400"/>
ros2.❇️ Includes a large set of pre-packaged nodes for fast prototyping which simplifies integration of hardware, algorithms, and AI models.
Latency benchmark with Python API for both framework, sending 40M of random bytes.
2025
dora.builder, a new Pythonic API for imperatively defining dora dataflows.llama.cpp.| dora-rs | |
|---|---|
| APIs | Python >= 3.8 including sync ⭐✅ |
Rust ✅
C/C++ 🆗
ROS2 >= Foxy 🆗 | | OS | Linux: Arm 32 ⭐✅ Arm 64 ⭐✅ x86_64 ⭐✅
MacOS: Arm 64 ⭐✅
Windows: x86_64 🆗
WSL: x86_64 🆗
Android: 🛠️ (Blocked by: https://github.com/elast0ny/shared_memory/issues/32)
IOS: 🛠️ | | Message Format | Arrow ✅
Standard Specification 🛠️ | | Local Communication | Shared Memory ✅
Cuda IPC 📐 | | Remote Communication | Zenoh 📐 | | RGB-D Streaming | AV1 Encoding (dora-rav1e), AV1 Decoding (dora-dav1d)📐 | | Metrics, Tracing, and Logging | Opentelemetry 📐 | | Configuration | YAML ✅ | | Package Manager | pip: Python Node ✅ Rust Node ✅ C/C++ Node 🛠️
cargo: Rust Node ✅ |
- ⭐ = Recommended
- ✅ = First Class Support
- 🆗 = Best Effort Support
- 📐 = Experimental and looking for contributions
- 🛠️ = Unsupported but hoped for through contributions
Everything is open for contributions 🙋
The node hub is available in the dora-rs/dora-hub repository.
| Type | Title | Description | Last Commit |
|---|---|---|---|
| Vision | YOLO | Use YOLO to detect object within image. | |
| ROS2 | C++ ROS2 Example | Example using C++ ROS2 | |
| ROS2 | Rust ROS2 Example | Example using Rust ROS2 | |
| ROS2 | Python ROS2 Example | Example using Python ROS2 | |
| Benchmark | GPU Benchmark | GPU Benchmark of dora-rs | |
| Benchmark | CPU Benchmark | CPU Benchmark of dora-rs | |
| Tutorial | Rust Example | Example using Rust | |
| Tutorial | Python Example | Example using Python | |
| Tutorial | CMake Example | Example using CMake | |
| Tutorial | C Example | Example with C node | |
| Tutorial | CUDA Example | Example using CUDA Zero Copy | |
| Tutorial | C++ Example | Example with C++ node | |
| Tutorial | Python Dataflow Builder Examples | Examples using the new Pythonic API. |
=
pip install dora-rs-cli
Additional installation methods
Install dora with our standalone installers, or from crates.io:
cargo install dora-cli
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dora-rs/dora/releases/latest/download/dora-cli-installer.sh | sh
To install a specific version:
curl --proto '=https' --tlsv1.2 -LsSf https://raw.githubusercontent.com/dora-rs/dora/main/install.sh | sh -s -- --tag v0.3.12
powershell -ExecutionPolicy ByPass -c "irm https://github.com/dora-rs/dora/releases/latest/download/dora-cli-installer.ps1 | iex"
git clone https://github.com/dora-rs/dora.git
cd dora
cargo build --release -p dora-cli
PATH=$PATH:$(pwd)/target/release
## Create a virtual environment
uv venv --seed -p 3.11
## Install nodes dependencies of a remote graph
dora build https://raw.githubusercontent.com/dora-rs/dora/refs/heads/main/examples/python-dataflow/dataflow.yml --uv
## Run yolo graph
dora run dataflow.yml --uv
Make sure to have a webcam
To stop your dataflow, you can use ctrl+c
cat dataflow.yml
nodes:
- id: camera
build: pip install opencv-video-capture
path: opencv-video-capture
inputs:
tick: dora/timer/millis/20
outputs:
- image
env:
CAPTURE_PATH: 0
IMAGE_WIDTH: 640
IMAGE_HEIGHT: 480
- id: object-detection
build: pip install dora-yolo
path: dora-yolo
inputs:
image: camera/image
outputs:
- bbox
- id: plot
build: pip install dora-rerun
path: dora-rerun
inputs:
image: camera/image
boxes2d: object-detection/bbox
The full documentation is available on our website. A lot of guides are available on this section of our website.
Dataflow-Oriented Robotic Architecture (dora-rs) is a framework that makes creation of robotic applications fast and simple.
dora-rs implements a declarative dataflow paradigm where tasks are split between nodes