Spent the last few weeks building an HTTP/2 server from scratch in Go.
Full RFC 9113 - framing, HPACK, stream state machine, flow control, TLS enforcement, 145/146 h2spec tests passing.
The fun part was RFC 9218 stream priorities. Browsers already send priority: u=N on every fetch. Most servers throw it away. I built a pluggable write scheduler that actually uses it - deficit round-robin across urgency levels, so hero images and nav get bandwidth before analytics pixels, on every flow-control window round.
50 concurrent streams, 16 KiB window: DRR finishes 40% faster than round-robin. Above-the-fold content lands first, tracking junk last. Exactly how it should work.
Also exports a C ABI (.so) so non-Go services can use it.