Dora
SoftwareRust robotics dataflow middleware with declarative node graphs and Python, Rust, C and C++ APIs. [1] [3]
Installation & first result →Official websiteGetting started
- For
- Robotics developers connecting multi-language processing nodes [1]
- Source rights
- Named licenses are documented by part. Review licenses
- Unknowns
- operating system, compute requirements not fully established. Review gaps
Source researched · Not tested by us
Sources checked · Research details
Licenses & related hardware
- License
- Apache-2.0 · Details by part
Overview
Dora is a Rust-based robotics dataflow system with node interfaces for Python, Rust, C and C++. Its graphs describe processing nodes and their inputs and outputs in YAML. A useful first investigation is a local, inspectable pipeline before adopting the repository's broader distributed, performance or recovery claims for a robot deployment. [1]
Is this for you?
- Known limitations
- The PyPI package dora is unrelated to dora-rs despite the import name.
- The selected core crate identifies itself as internal and outside the public1.0 stability guarantee.
- Throughput, restart/recovery, distributed transport and real-time claims were not benchmarked or independently verified.
Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.
What you need
Installation & first result
Open the upstream getting-started guide [1]
- Use the README's CLI and Python API packages, then inspect the selected examples/python-dataflow/dataflow.yml before attempting a local dataflow.
- Preserve exact source/dependency/model versions and evaluate the selected workflow before connecting physical hardware or reusing data.
Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.
- Installation
Use the README's CLI and Python API packages, then inspect the selected examples/python-dataflow/dataflow.yml before attempting a local dataflow.
Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.
Hardware, models & data
Project notes
The import and package names differ
The README names dora-cli as the Cargo package that provides the dora command. For Python it names dora-rs, together with numpy and pyarrow for the example. The Python import is from dora import Node, but the README explicitly warns that pip install dora installs an unrelated package. Keep the executable, distribution and import names distinct when troubleshooting an environment. [1]
The documented local route needs Python 3.11 or later and Cargo for the CLI installation: cargo install dora-cli, then pip install dora-rs numpy pyarrow. This review selects repository revision aae702a9ab7886d9bdec6a1ecb26dbfd48314859; from that checkout's root, inspect the example before attempting dora run examples/python-dataflow/dataflow.yml. The upstream package commands are unpinned, and matching released package versions to this checkout has not been established. These are documented instructions, not commands executed here. [1] [4]
For Rust/Python, upstream labels Linux first-class with pull-request gates and macOS ARM64 first-class with nightly gates; Windows x86_64 and WSL x86_64 are best effort. C/C++ templates have separate labels: Linux is first-class but nightly-gated, and macOS ARM64 is best effort. These are repository support labels, not compatibility established by our tests. [1]
The documented example is a sender, transformer and receiver dataflow under examples/python-dataflow. Inspect that YAML and its nodes before attempting the README's local dora run route. Success with that example would establish only that example in your environment; it would not verify a cross-machine robot pipeline or a particular ROS bridge. No example was executed here. [1] [4]
Keep public APIs separate from runtime internals
The inspected dora-core crate identifies itself as internal, published because other crates depend on it, and outside the public 1.0 stability guarantee. The documented Rust node API is dora-node-api. A profile of the system should not turn the internal core crate into a stable application API. The repository also contains actual asynchronous socket send/read implementation; inspecting that source does not establish crash recovery, durable coordinator state or network performance. [1] [3] [5]
The root license is Apache-2.0. Node packages, models and external services selected for a real robot need their own dependency and rights review. No source build, IPC/network connection, ROS integration, restart test or benchmark was performed. [2]
What we checked
Source research only. Selected implementation/model text, repository tree and license declarations were inspected. No upstream compilation, dependency installation, simulator, network/USB/device integration, data collection, benchmark or physical robot test was performed. Source files are linked rather than redistributed; external services and paid products are not endorsed.
Not yet established
- Requirements: operating system, host computer
- Version-specific hardware compatibility (ecosystem tags alone do not establish it)
Updates
- Upstream last updated
- Not established
- Latest release
- Not established
- Profile updated
- Nov 1, 2026
- Sources last checked
- Nov 1, 2026
- Next review
- Dec 1, 2026
- Reviewed revision
aae702a
Source files and licenses
Distinct robot-facing middleware contribution with actual implementation/model content and a bounded documented next step. Review covers source artifacts, not operational performance or a complete tested deployment.
| Layer | Availability / license |
|---|---|
| software | available · Apache-2.0 Declaration for the scoped source implementation/documentation; dependencies, external services, model/data assets and inherited file-specific terms require separate checks. No blanket redistribution or operational clearance. [1] [2] [3] |
| documentation | available · Apache-2.0 Declaration for the scoped source implementation/documentation; dependencies, external services, model/data assets and inherited file-specific terms require separate checks. No blanket redistribution or operational clearance. [1] [2] [3] |
This profile is scoped to source implementation/model descriptions and an initial inspection workflow; no physical manufacturing design, pretrained checkpoint or dataset is selected for redistribution or tested deployment.
References
Each source links to the exact revision we read. “Used for” shows where this page relies on it.
- S001 Project README
Revision, date & where cited
dora-rs/dora contributors · github.com · revision
aae702a· Project README at · Accessed Nov 1, 2026
Used for: Overview, Is this for you?, What you need, Installation & first result and 4 more - S002 License declaration
Revision, date & where cited
dora-rs/dora contributors · github.com · revision
aae702a· License declaration at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Keep public APIs separate from runtime internals and 1 more - S003 Selected implementation excerpt
Revision, date & where cited
dora-rs/dora contributors · github.com · revision
aae702a· Selected implementation excerpt at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Hardware, models & data and 2 more - S004 Repository artifact tree
Revision, date & where cited
dora-rs/dora contributors · github.com · revision
aae702a· Repository artifact tree at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, The import and package names differ - S005 Additional binaries/daemon/src/socket_stream_utils.rs
Revision, date & where cited
dora-rs/dora contributors · github.com · revision
aae702a· Additional binaries/daemon/src/socket_stream_utils.rs at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Keep public APIs separate from runtime internals
Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5