Adora
智能数据流导向机器人架构 (Agentic Dataflow-Oriented Robotic Architecture) – 一个 100% Rust 的实时机器人与 AI 应用框架。
为什么选择 Adora?
性能
- 10-17x faster than ROS2 Python – 100% Rust internals with zero-copy shared memory IPC for messages >4KB, flat latency from 4KB to 4MB payloads
- Apache Arrow native – columnar memory format end-to-end with zero serialization overhead; shared across all language bindings
- Zenoh SHM 数据面 – 节点通过 Zenoh 共享内存直接发布,零拷贝数据传输;跨机自动网络回退
- 非阻塞事件循环 – Zenoh 发布卸载到排水任务;指标收集在后台运行
开发者体验
- Single CLI, full lifecycle –
adora runfor local dev,adora up/startfor distributed prod, plus build, logs, monitoring, record/replay all from one tool - Declarative YAML dataflows – define pipelines as directed graphs, connect nodes through typed inputs/outputs, optional type annotations with static validation
- Multi-language nodes – write nodes in Rust, Python, C, or C++ with native APIs (not wrappers); mix languages freely in one dataflow
- Reusable modules – compose sub-graphs as standalone YAML files with typed inputs/outputs, parameters, and nested composition
- Hot reload – live-reload Python operators without restarting the dataflow
Production Readiness
- Fault tolerance – per-node restart policies (never/on-failure/always), exponential backoff, health monitoring, circuit breakers with configurable input timeouts
- Distributed by default – local shared memory between co-located nodes, automatic Zenoh pub-sub for cross-machine communication, SSH-based cluster management with label scheduling
- 协调器高可用 – 持久化 redb 状态存储,守护进程自动重连,协调器重启时数据流状态重建
- 动态拓扑 – 通过 CLI 在运行中的数据流上添加和删除节点,无需重启
- Configurable queue policies –
drop_oldest(default) orbackpressureper input, with metrics on dropped messages - 软实时 – 可选
--rt标志启用 mlockall + SCHED_FIFO;每节点cpu_affinity绑核 - OpenTelemetry – built-in structured logging with rotation/routing, metrics, distributed tracing
Debugging and Observability
- Record/replay – capture dataflow messages to
.adorecfiles, replay offline at any speed with node substitution - Topic inspection –
topic echoto print live data,topic hzTUI for frequency analysis,topic infofor schema and bandwidth - Resource monitoring –
adora topTUI showing per-node CPU, memory, queue depth, network I/O across all machines - Log aggregation – subscribe to
adora/logsto receive structured log messages from all nodes without extra wiring - Trace inspection –
trace listandtrace viewfor viewing coordinator spans without external infrastructure
Ecosystem
- Communication patterns – built-in service (request/reply), action (goal/feedback/result), and streaming (session/segment/chunk) patterns via well-known metadata keys
- ROS2 bridge – bidirectional interop with ROS2 topics, services, and actions
- In-process operators – lightweight functions that run inside a shared runtime, avoiding per-node process overhead