Streaming is one of the most fascinating things I got to learn in-depth as part of
#Kyo's development! Providing an encoding with good ergonomics, performance, and common functionality like resource safety & backpressure isn't a trivial task. I'm super happy to see
@adamhearn's talk presenting how algebraic effects open a new chapter in how to encode streams (link in reply 👇)
I think I probably rewrote Kyo's streams from scratch about 10 times before landing on the initial version 🤓 Since then, we've been iterating on it, introducing new features, optimizations, and even simplifying it further! It's 😻 to be ripping the benefits of open-source collaboration!
The result? A simple, principled, and high-performance implementation with next-level flexibility. Kyo streams can leverage other effects like Resource handling, state management via Var, and buffering via Async. But not only that! They provide seamless integration with other effects, including user-defined ones 🤯 It's definitely a great peek at how algebraic effects unfold a new chapter in functional programming.
Streaming isn't the "fundamental effect", the ability to encode and compose effects is the true gem!