🚙🤖💻 Making robotic applications fast and simple!
- pip
- Linux
- MacOS
- Windows
- Nix[OS]
- Cargo
- Source
- Github Releases
- Paste the following line in a terminal
pip install dora-rs-cli
- Paste the following line in a terminal
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/dora-rs/dora/main/install.sh | bash
- Paste the following line in a terminal
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/dora-rs/dora/main/install.sh | bash
- Paste the following lines in a terminal
powershell -c "irm https://raw.githubusercontent.com/dora-rs/dora/main/install.ps1 | iex"
- If you use VSCode, make sure to restart VSCode for the change to happen.
- To make a base dev-shell (Recommended):
{
description = "A base dev-shell flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
dora-rs = {
url = "github:dora-rs/dora";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
dora-rs,
}: let
system = "x86_64-linux";
# ↑ Swap it for your system as needed
pkgs = nixpkgs.legacyPackages.${system};
in {
devShells.${system}.default = pkgs.mkShell {
buildInputs = [
dora-rs.packages.${system}.dora-cli
];
};
};
}
- To add to a system-config flake:
- First, add this to your inputs
dora-rs = {
url = "github:dora-rs/dora";
inputs.nixpkgs.follows = "nixpkgs";
};
- ...and add to your packages array. E.g. adding to your home-manager config:
{
inputs,
config,
pkgs,
...
}: {
home.packages = with pkgs; [
inputs.dora-rs.packages.x86_64-linux.dora-cli
];
}
- To install (not recommended)
nix-env --install "github:dora-rs/dora"
cargo install dora-cli # In case of issues, you can try to add `--locked`
dora --help
- Clone and build source
## dora binary
git clone https://github.com/dora-rs/dora.git
cd dora
cargo build --release -p dora-cli
PATH=$PATH:$(pwd)/target/release
- To develop python library
# pip install maturin
## Python API
maturin develop -m apis/python/node/Cargo.toml
- To test dora installation
dora --help
- Go on our release page
- download both the
zip
andwhl
file corresponding to your architecture and OS. - Unzip the zip file and place it in your binary folder (e.g.:
$HOME/bin
). - Verify that dora is well installed by calling
dora --help
in your terminal.
In 2024, AI is booming! Robotic framework however hasn't changed much in years... This is why we created dora-rs! dora-rs is a new robotic framework that brings modernity into robotic application.
dora-rs can already show impressive performance! This is the result of using our own shared memory server and Apache Arrow to achieve zero copy!
Those performance improvements make a world of difference for beginners, AI practitioners, and weekend hobbyists who have been limited by the lack of support for Python in this field!
And that's only one example of the many innovative features that we can show for dora-rs!
Dora CPU Latency (Lower is better)
- Python API
- Rust API
- C/C++ API
Source code for ROS 2 benchmark.
Source code for dora-rs
Dora GPU Latency (Lower is better)
- PyTorch CUDA
See:Documentation
Features
⭐ Zero Overhead
Transfer message with zero copy on shared memory! We use Arrow and our own shared memory daemon to make lightspeed communication on a single machine.
🤯 Scalable
Built to scale across machines and robots! We use YAML description to make our software declarative in order to be distributable on multiple machines.
👨🏭 Fast Prototyping
Use readily available nodes from your YAML dataflow, so that you don't need to bother copy-pasting boilerplate code. You can also tinker live using Python!
🔭 Observable
Get logs, traces and metrics through our cli and opentelemetry!
💻 Large Support Matrix
dora is available in Python, Rust, C and C++ on most platforms and architecture!
🧑🤝🧑 Community
We hope to make dora a community-driven project and help other learn about robotics.