Hello, I'm coming from the Go language, and there there are nice I/O interface types : `io.Reader`, `io.Writer`, and similar. Those are interfaces types meaning that it can be backed by any implementation and those types can be used anywhere in the language to represent readable or writable streams. This is important because you can pass the stream to a JSON library for encoding/decoding, you can pass it to hash functions to compute a digest, you can copy them from one to another.
In Nim, I'm currently in need of stream types that could be ubiquous. I have a small HTTP service that is currently using the `zfblast` HTTP server implementation but I have trouble to make it work the way I need (listen to multiple IP addresses including IPv6). I'm considering moving to the standard library `asynchttpserver` but there is an issue with it as well because the whole request / response is stored as a string, which can cause issues with large requests/responses (uploads/downloads). So I wanted to write yet another HTTP server library that would alleviate those issues. In particular representing the HTTP request and response as a stream and not an in-memory blob. What would be your advice in terms of stream library that support async operation? Is there something that could be flexible enough to be used in a variety of contexts? Thank you