Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Dora

智能数据流导向机器人架构 (Agentic Dataflow-Oriented Robotic Architecture) – 一个 100% Rust 的实时机器人与 AI 应用框架。

为什么选择 Dora?

性能

  • 比 ROS2 Python 快 10-17 倍 – 100% Rust 内核,>4KB 的消息使用零拷贝共享内存 IPC,4KB 到 4MB 负载下延迟保持平稳
  • Apache Arrow 原生 – 端到端列式内存格式,零序列化开销;所有语言绑定共享
  • Zenoh SHM 数据面 – 节点通过 Zenoh 共享内存直接发布,零拷贝数据传输;跨机自动网络回退
  • 非阻塞事件循环 – Zenoh 发布卸载到排水任务;指标收集在后台运行

开发者体验

  • 单一 CLI,完整生命周期dora run 用于本地开发,dora up/start 用于分布式生产,构建、日志、监控、录制/回放等全部集成在一个工具中
  • 声明式 YAML 数据流 – 以有向图定义流水线,通过类型化输入/输出连接节点,支持可选的类型注解和静态校验
  • 多语言节点 – 使用 Rust、Python、C 或 C++ 编写节点,均为原生 API(非封装层);可在同一数据流中自由混用
  • 可复用模块 – 将子图组合为独立的 YAML 文件,支持类型化输入/输出、参数与嵌套组合
  • 热重载 – 无需重启数据流即可实时重载 Python 算子

Production Readiness

  • 容错 – 按节点配置重启策略(never/on-failure/always),指数退避,健康监控,带可配置输入超时的断路器
  • 默认分布式 – 同机节点之间使用本地共享内存,跨机器通信自动使用 Zenoh 发布/订阅,基于 SSH 的集群管理与标签调度
  • Coordinator HA – persistent redb state store, daemon auto-reconnect, dataflow records survive coordinator restart (full running-dataflow reclaim across restart is partial; see open tracker)
  • 动态拓扑 – 通过 CLI 在运行中的数据流上添加和删除节点,无需重启
  • 可配置队列策略 – 每个输入支持 drop_oldest(默认)或 backpressure,并附带丢弃消息的指标
  • 软实时 – 可选 --rt 标志启用 mlockall + SCHED_FIFO;每节点 cpu_affinity 绑核
  • OpenTelemetry – 内置带轮转/路由的结构化日志、指标、分布式追踪

Debugging and Observability

  • Record/replay – capture dataflow messages to .drec files, replay offline at any speed with node substitution
  • 主题检查topic echo 打印实时数据,topic hz TUI 进行频率分析,topic info 查看 schema 和带宽
  • 资源监控dora top TUI 显示所有机器上每个节点的 CPU、内存、队列深度、网络 I/O
  • 日志聚合 – 订阅 dora/logs 即可接收所有节点的结构化日志消息,无需额外配置
  • 追踪检查trace listtrace view 用于查看协调器的 span,无需外部基础设施

Ecosystem

下一步