Developer Builds RFC 9113-Compliant HTTP/2 Server in Go with C ABI Export
A developer has built a fully compliant HTTP/2 server from scratch in Go, implementing RFC 9113 with framing, HPACK, stream state machine, flow control, and TLS enforcement, passing 145 of 146 h2spec tests. The project also implements RFC 9218 stream prioritization, a feature most servers currently ignore despite browsers already sending priority headers with every fetch request. A pluggable write scheduler using deficit round-robin across urgency levels ensures high-priority content like navigation and hero images receives bandwidth before low-priority requests like analytics. In testing with 50 concurrent streams and a 16 KiB window, the deficit round-robin approach completed tasks 40% faster than standard round-robin scheduling. The server also exports a C ABI shared library, allowing non-Go services to integrate it directly.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in