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.
Install / Use
/learn @dora-rs/DoraREADME
Highlights
- 🚀 dora-rs is a framework to run realtime multi-AI and multi-hardware applications.
- 🦀 dora-rs internals are 100% Rust making it extremely fast compared to alternative such as being ⚡️ 10-17x faster than
ros2. - ❇️ Includes a large set of pre-packaged nodes for fast prototyping which simplifies integration of hardware, algorithms, and AI models.
Latest News 🎉
<details open> <summary><b>2025</b></summary>- [08/25] Introduced
dora.builder, a new Pythonic API for imperatively definingdoradataflows. - [07/25] Added Kornia rust nodes in the hub for V4L / Gstreamer cameras and Sobel image processing.
- [06/25] Add support for git based node, dora-vggt for multi-camera depth estimation, and adding robot_descriptions_py as a default way to get urdfs within dora.
- [05/25] Add support for dora-pytorch-kinematics for fk and ik, dora-mediapipe for pose estimation, dora-rustypot for rust serialport read/write, points2d and points3d visualization in rerun.
- [04/25] Add support for dora-cotracker to track any point on a frame, dora-rav1e AV1 encoding up to 12bit and dora-dav1d AV1 decoding,
- [03/25] Add support for dora async Python.
- [03/25] Add support for Microsoft Phi4, Microsoft Magma.
- [03/25] dora-rs has been accepted to GSoC 2025 🎉, with the following idea list.
- [03/25] Add support for Zenoh for distributed dataflow.
- [03/25] Add support for Meta SAM2, Kokoro(TTS), Improved Qwen2.5 Performance using
llama.cpp. - [02/25] Add support for Qwen2.5(LLM), Qwen2.5-VL(VLM), outetts(TTS)
Support Matrix
| | dora-rs | | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | APIs | Python >= 3.8 including sync ⭐✅ <br> Rust ✅<br> C/C++ 🆗 <br>ROS2 >= Foxy 🆗 | | OS | Linux: Arm 32 ⭐✅ Arm 64 ⭐✅ x86_64 ⭐✅ <br>MacOS: Arm 64 ⭐✅ <br>Windows: x86_64 🆗 <br>WSL: x86_64 🆗 <br> Android: 🛠️ (Blocked by: https://github.com/elast0ny/shared_memory/issues/32) <br> IOS: 🛠️ | | Message Format | Arrow ✅ <br> Standard Specification 🛠️ | | Local Communication | Shared Memory ✅ <br> 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 🛠️ <br>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 🙋
Node Hub
The node hub is available in the dora-rs/dora-hub repository.
Examples
| 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 | 