www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - [SAoC 2022] QUIC Protocol : Milestone 3

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
Dec 13 2022