You might want to look at
[https://github.com/zielmicha/reactor.nim/blob/master/reactor/async/stream.nim](https://github.com/zielmicha/reactor.nim/blob/master/reactor/async/stream.nim)
from my reactor.nim - it implements asynchronous streams. The implementation
is a bit involved (mostly for performance and to properly implement stream
closing), but in it's core it just invokes receive callbacks when data is
written to it. You could implement something really similar on top of async API
from stdlib.