In an attempt to become a more well-rounded developer, I've been working to understand all parts of the stack. This has lead me to researching and messing around with networking and infra, and the core protocols that run underneath it.
To get hands-on experience, I created a Rust networking lab where I implemented a small HTTP/3 server using the quinn library (a Rust QUIC implementation) and experimented with client-server interactions over QUIC. This has allowed me to explore real issues like congestion control, stream multiplexing, and packet loss recovery in a controlled environment.
The architecture I'm exploring follows the HTTP/3 -> h3 -> quinn pipeline.
Quinn handles the low-level QUIC transport over UDP, including encryption, reliable delivery, and stream multiplexing.
H3 provides the HTTP/3 framing layer, translating requests and responses into QUIC streams.
HTTP/3 sits on top, giving me the familiar semantics of headers, status codes, and request/response logic.
Next, I aim to integrate HTTP/3 support into Hyper, Rust’s popular HTTP library. The goal is to allow Hyper clients and servers to natively speak HTTP/3 while maintaining the same ergonomic API as Hyper over TCP/HTTP/1/2. This is exciting because it bridges real-world application-level HTTP tooling with the cutting-edge transport improvements QUIC offers.
I’m documenting this journey and sharing code experiments to help others understand how modern networking stacks work, and to solidify my own knowledge by building and teaching it in public.



