Ranges for distributed and asynchronous systems
summary
Proposes a reactive, range-inspired pipeline that turns iterators into push streams with sources, sinks and transforms, implemented with expression-template composition and compile-time folding. Uses range-v3 for syntax, nlohmann::json for parsing and wraps errors into std::expected (or Simon Brandt’s expected); implements zip/transform/group/merge/debounce/join and a simple JSON-bookmark web service that runs over ZeroMQ/Qt backends. Live demo is flaky but screenshots show cross-process pipeline splitting works; implementation reaches ~50 rewrites and the current version is generic and low-latency.
AI-written summary · about
chapters (11)
- 0:00Start
- 5:37Composition
- 7:45Ranges
- 18:57Push iterators
- 22:23Invoke
- 25:08Creating a sink
- 26:18Creating a transformation
- 27:20Filtering
- 28:12Pipelines
- 42:16Going postal
- 54:40Syntax
related talks
48mStreaming all the things with Akka Streams
54mHow I Learned to Stop Worrying & Love the Flow
58mGame of Streams
19mSuki: Choreographed Distributed Dataflow in Rust
30mLive Coding: Building Stateful and Scalable Reactive Streams...
40mUsing ZMQ for Fun and Profit
50mAddressing Recent Events
47mReactors Road to Composable Distributed Computing
