Repolode
dora-rs

dora-rs/dora

ノードを有向データフローグラフとして構成し、リアルタイムのロボティクスやAIアプリケーションを構築できる、Rust製ミドルウェアフレームワークです。

スター
4,034
フォーク
463
未解決の Issue
111
最終コミット
4 時間前

これは何?

Dora(Dataflow-Oriented Robotic Architecture)は、有向グラフで接続した独立したノードを組み合わせて、ロボティクスやAIアプリケーションを構築するためのフレームワークです。各ノードはRust、Python、C、C++のいずれかで記述された独立プロセスで、YAMLファイルで宣言した型付きの入力・出力を通じてデータをやり取りします。複数のマシンにまたがる場合も含め、プロセスの起動、メッセージのルーティング、ライフサイクル管理をフレームワークが担います。

カメラフレームや点群などデータ量の多いワークロードでは、同じマシン上のノード間にゼロコピーの共有メモリを使い、マシン間通信にはZenohを利用します。メッセージ形式にはApache Arrowを採用しています。CLIでは、ローカルでのデータフロー実行、分散環境向けのコーディネーターとデーモンの起動、トピック・ログ・リソース使用状況の確認ができます。メッセージの記録と再生、ノードごとの再起動ポリシー、ROS2ブリッジにも対応しています。

また、カメラ、YOLO検出器、LLM、TTSなど、バージョンを指定して再利用可能なノードを取得できるノードハブに加え、軽量な変換処理向けのインプロセス・オペレーターモデルも備えています。

主な機能

  • 01Rust、Python、C、C++で記述したノードを、宣言的なYAMLで定義する有向グラフ形式のデータフロー。
  • 02同じマシン上のノード間ではゼロコピーの共有メモリを使用し、マシン間ではZenohのPub/Subで通信。
  • 03エンドツーエンドでApache Arrowメッセージ形式を採用。
  • 04ローカル実行、分散クラスター、ログ、トピックの確認、リソース監視をまとめて扱える単一のCLI。
  • 05データフローメッセージの記録と再生、およびノードごとの再起動ポリシー。
  • 06トピック、サービス、アクションに対応したROS2ブリッジ。

ユースケース

  • カメラ映像の取得、物体検出、可視化のノードをつなぎ、ロボットの認識パイプラインを構築する。
  • Python製AIモデルとRustまたはC++製の制御コンポーネントを、ひとつのデータフローで連携させる。
  • ノードのライフサイクルを連携させながら、複数マシンで動作するロボットやセンサーシステムを運用する。
  • 既存のROS2システムを、新しいAI駆動型ノードとブリッジする。

クイックスタート

  1. 1

    crates.ioからdora CLIをインストールする

    cargo install dora-cli
  2. 2

    Python node APIとサンプルの依存関係をインストールする

    pip install dora-rs numpy pyarrow
  3. 3

    リポジトリをクローンして、そのディレクトリに移動する

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

    Pythonのsender-transformer-receiverサンプルのdataflowを実行する

    dora run examples/python-dataflow/dataflow.yml

使う前に知っておきたいこと

  • READMEではNode Hubは不安定と記載されています。
  • コーディネーターの再起動後に実行中のdataflowを再取得する機能は、一部のみサポートされています。

収録されている特集

トピック

よくある質問

dora とは?
ノードを有向データフローグラフとして構成し、リアルタイムのロボティクスやAIアプリケーションを構築できる、Rust製ミドルウェアフレームワークです。 Dora(Dataflow-Oriented Robotic Architecture)は、有向グラフで接続した独立したノードを組み合わせて、ロボティクスやAIアプリケーションを構築するためのフレームワークです。各ノードはRust、Python、C、C++のいずれかで記述された独立プロセスで、YAMLファイルで宣言した型付きの入力・出力を通じてデータをやり取りします。複数のマシンにまたがる場合も含め、プロセスの起動、メッセージのルーティング、ライフサイクル管理をフレームワークが担います。
dora は無料で使えますか?ライセンスは?
dora は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
dora は今もメンテナンスされていますか?
活発にメンテナンス中。dora の最終コミットは 2026年10月22日 です。
dora は何に使えますか?
カメラ映像の取得、物体検出、可視化のノードをつなぎ、ロボットの認識パイプラインを構築する。 Python製AIモデルとRustまたはC++製の制御コンポーネントを、ひとつのデータフローで連携させる。 ノードのライフサイクルを連携させながら、複数マシンで動作するロボットやセンサーシステムを運用する。 既存のROS2システムを、新しいAI駆動型ノードとブリッジする。
dora のインストール方法は?
crates.ioからdora CLIをインストールする: cargo install dora-cli Python node APIとサンプルの依存関係をインストールする: pip install dora-rs numpy pyarrow リポジトリをクローンして、そのディレクトリに移動する: git clone https://github.com/dora-rs/dora.git && cd dora Pythonのsender-transformer-receiverサンプルのdataflowを実行する: dora run examples/python-dataflow/dataflow.yml
dora はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/dora-rs/dora

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト