Repolode
dora-rs

dora-rs/dora

Полностью написанный на Rust middleware-фреймворк для создания приложений в области робототехники и AI в виде направленных графов потоков данных.

Звёзды
4,033
Форки
463
Открытые issues
111
Последний коммит
6 часов назад

Что это?

Dora (Dataflow-Oriented Robotic Architecture) — фреймворк для создания приложений в области робототехники и AI из независимых узлов, соединённых в направленный граф. Каждый узел — отдельный процесс, написанный на Rust, Python, C или C++, а узлы обмениваются данными через типизированные входы и выходы, объявленные в YAML-файле. Фреймворк управляет запуском процессов, маршрутизацией сообщений и жизненным циклом узлов на одной или нескольких машинах.

Для задач с большими объёмами данных, например с кадрами с камер или облаками точек, dora использует shared memory с передачей данных без копирования между узлами на одной машине и Zenoh для связи между машинами. Сообщения передаются в формате Apache Arrow. CLI позволяет запускать потоки данных локально, настраивать coordinator и daemons для распределённой работы, а также просматривать topics, логи и использование ресурсов. Кроме того, поддерживаются запись и воспроизведение сообщений, политики перезапуска для каждого узла и мост с ROS2.

В Dora также есть каталог узлов, откуда можно устанавливать по версиям готовые к повторному использованию узлы, например для камер, детекторы YOLO и узлы LLM и TTS, а также модель операторов, выполняющихся в том же процессе и предназначенных для лёгких преобразований данных.

Ключевые возможности

  • 01Потоки данных задаются в декларативном YAML как направленные графы; узлы можно писать на Rust, Python, C или C++.
  • 02Передача данных без копирования через shared memory между узлами на одной машине и pub-sub через Zenoh между машинами.
  • 03Формат сообщений Apache Arrow на всех этапах передачи.
  • 04Единый CLI для локального запуска, распределённых кластеров, просмотра логов и topics, а также мониторинга ресурсов.
  • 05Запись и воспроизведение сообщений потоков данных, а также политики перезапуска для каждого узла.
  • 06Мост с ROS2 для topics, services и actions.

Сценарии использования

  • Создание конвейера обработки данных для робота, объединяющего захват изображения с камеры, обнаружение объектов и визуализацию.
  • Объединение AI-моделей на Python с компонентами управления на Rust или C++ в одном потоке данных.
  • Запуск робототехнической или сенсорной системы на нескольких машинах с согласованным управлением жизненным циклом узлов.
  • Подключение новых узлов на базе AI к существующей системе ROS2 через мост.

Быстрый старт

  1. 1

    Установите dora CLI с crates.io

    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

    Запустите пример dataflow sender-transformer-receiver на Python

    dora run examples/python-dataflow/dataflow.yml

Что важно знать

  • В README указано, что Node Hub нестабилен.
  • Восстановление запущенных dataflow после перезапуска координатора поддерживается лишь частично.

Темы

Частые вопросы

Что такое dora?
Полностью написанный на Rust middleware-фреймворк для создания приложений в области робототехники и AI в виде направленных графов потоков данных. Dora (Dataflow-Oriented Robotic Architecture) — фреймворк для создания приложений в области робототехники и AI из независимых узлов, соединённых в направленный граф. Каждый узел — отдельный процесс, написанный на Rust, Python, C или C++, а узлы обмениваются данными через типизированные входы и выходы, объявленные в YAML-файле. Фреймворк управляет запуском процессов, маршрутизацией сообщений и жизненным циклом узлов на одной или нескольких машинах.
dora можно использовать бесплатно? Какая у него лицензия?
dora распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
dora всё ещё поддерживается?
Активно поддерживается. Последний коммит в dora — 22 окт. 2026 г..
Для чего можно использовать dora?
Создание конвейера обработки данных для робота, объединяющего захват изображения с камеры, обнаружение объектов и визуализацию. Объединение AI-моделей на Python с компонентами управления на Rust или C++ в одном потоке данных. Запуск робототехнической или сенсорной системы на нескольких машинах с согласованным управлением жизненным циклом узлов. Подключение новых узлов на базе AI к существующей системе ROS2 через мост.
Как установить dora?
Установите dora CLI с crates.io: cargo install dora-cli Установите Python node API и зависимости примера: pip install dora-rs numpy pyarrow Клонируйте репозиторий и перейдите в его каталог: git clone https://github.com/dora-rs/dora.git && cd dora Запустите пример dataflow sender-transformer-receiver на Python: dora run examples/python-dataflow/dataflow.yml
Где скачать dora?
Исходный код и инструкции по установке — на GitHub: https://github.com/dora-rs/dora

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Платформа для симуляции в робототехнике и embodied AI: объединяет мультифизический движок, фотореалистичный рендерер и кроссплатформенный компилятор с интерфейсом на Python.

30,1 тыс.2,9 тыс.PythonApache-2.0Обновлён 3 дня назад

Открытая базовая vision-language-action-модель NVIDIA GR00T N1.7 для навыков управления гуманоидными роботами и манипуляции, с инструментами дообучения и развёртывания.

8,2 тыс.1,5 тыс.PythonApache-2.0Обновлён 18 часов назад