Streamux: Full RFC 9113 in Go with C abi

dev.to

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.

Source: dev.to

arrow_back Back to News