Redefining Stream Composition with Algebraic Effects
summary
Claims that streams are just another algebraic effect and show a concrete implementation: streams become a Kio effect that uses an Emit effect to log values alongside normal effects. Benchmarks compare against FS2 and ZIO and report Kio beating them on synchronous workloads. The implementation removes the duplicated run loops of pull/channel systems, adds allocation‑free tags and nested effect support, ships as modules on Maven Central, and is released as Kio 1.0 RC while noting an invariant‑in‑values limitation.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 1:07Speaker background
- 2:11Streams in effectful computations
- 3:14Limitations of iterators
- 5:24FS2 and Zio Streams
- 8:14FS2 Pull and ZStream
- 16:20Duplicated complexity problem
- 19:32Introducing Kio
- 22:43Kio's effect system
- 25:10Kio Streams simplicity
- 27:58Stream operators in Kio
- 31:09Resource safety in Kio
- 32:54Performance benchmarks
- 36:22Kio limitations
- 38:11Kio 1.0 RC release
- 39:39Q&A
related talks
40mStreamling: Lightweight, Extensible Streaming on DataFusion
32mTechniques for writing concurrent applications with asynchronous I/O
22mAntimony: a real time distributed stream processing system
33mStorage-intensive apps on tokio: when it's time to reach for io_uring
17mZero-Copy Chaos. When everything you knew about tokio...
32mChannels in Rust: The Art of Concurrency
45mKeynote | Actors with Tokio – a lesson in ownership
16mTokio’s New io_uring-Based File I/O
