January 12, 2023

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!