A production-grade, real-time sensor processing pipeline for robotics in Rust.
- Multi-stage pipeline with dedicated threads (Ingestion, Filtering, Aggregation, Output)
- Lock-free SPSC ring buffer (0.3ns push, 9ns pop)
- Composable processing stages (filters, transforms, fusion)
- Zero-copy data sharing with object pooling
- Adaptive backpressure with quality degradation
- Per-stage metrics with jitter tracking and live dashboard
| Metric | Result |
|---|---|
| Pipeline throughput | >1M items/sec |
| Stage processing | 2.2B items/sec |
| Channel latency | 20ns |
| Ring buffer push | 0.3ns |
use sensor_pipeline::pipeline::{MultiStagePipelineBuilder, PipelineConfig};
use sensor_pipeline::stage::{Filter, Map, Identity};
let mut pipeline = MultiStagePipelineBuilder::<i32, i32, _, _, _, _>::new()
.config(PipelineConfig::default())
.ingestion(Map::new(|x: i32| x + 1))
.filtering(Filter::new(|x: &i32| *x > 0))
.aggregation(Map::new(|x: i32| x * 2))
.output(Identity::new())
.build();
pipeline.send(5).unwrap();
let result = pipeline.try_recv();
pipeline.shutdown();
pipeline.join().unwrap();cargo run --example full_pipeline
cargo run --example metrics_demo
cargo run --example benchmark_latency --releasecargo test
cargo benchMIT OR Apache-2.0