Hi! Since my last update I worked a bit on a proof of concept draft of
QuicSession, an entity that should drive the connection, with the help of my
previously implemented modules.
https://github.com/dlang-community/quic-d/commits/devel-session
As far as I understand this sans I/O approach, I started my work with these
ideas in mind (inspired by some other implementations, too):
-
A connect() call should trigger the initial key generation and it should allow
transitions to other states as new packets from the other peer arrive. -
Calling a method that gives you datagram(s) checks for example if the
handshake is done, if there is data on any stream to send and it writes packets
accordingly. -
Calling a method that parses incoming datagrams should modify the internal
states (via some frame handlers) and notify you through a queue of events.
Suggestions are welcome! :) Thanks!