December 13, 2022

Hi! Since my last update I did some work on the side of QuicStream that the user will interact with. I took into consideration the finite-state-machines described in the RFC9000 for both unidirectional and bidirectional streams.

I have added different methods for reading and writing, so that the user (that does not need to be aware of internal quic framing) can choose if he wants more or less control. Multiple people recommended me to work towards a "Sans I/O" implementation. In the next part, I think I should start working on some events, with the idea in mind that you can feed arrays of bytes and quic-d gives you events and vice-versa (as far as I understand this "sans I/O" approach) with the actual I/O being "on the edges".

https://github.com/dlang-community/quic-d/tree/devel-stream

Suggestions are welcome! Thanks!

References:
https://www.rfc-editor.org/rfc/rfc9000.html#name-sending-stream-states
https://www.rfc-editor.org/rfc/rfc9000.html#name-receiving-stream-states
https://www.rfc-editor.org/rfc/rfc9000.html#name-bidirectional-stream-states