A production-grade real-time compute graph execution engine for robotics applications in Rust.
Nodix is a DAG-based system where nodes are computational units (sensors, filters, ML models) and edges represent typed data flow. It's designed for robotics applications requiring deterministic, low-latency execution.
- Type-safe connections: Compile-time and runtime type checking for port connections
- Zero-copy data sharing: Arc-based data structures for efficient large data handling
- Multiple execution modes:
- Single-threaded executor for deterministic execution
- Parallel executor with thread pool for throughput
- Real-time scheduler with multiple policies (FIFO, EDF, Rate Monotonic)
- Observability:
- HDR histogram-based latency metrics (p50, p95, p99)
- Chrome Tracing format export for visualization
- Graphviz DOT export for graph visualization
- Dynamic graph modification: Hot-swap nodes, add/remove nodes at runtime
- Backpressure handling: Multiple strategies (Block, DropOldest, DropNewest, Adaptive)