finds.dev← search

// the find

hyperium/h2

★ 1,532 · Rust · MIT · updated Jul 2026

HTTP 2.0 client & server implementation for Rust.

h2 is the HTTP/2 implementation underneath hyper — if you're using reqwest or axum, this is already running your connections. It's a protocol-layer library: it handles frames, streams, flow control, and HPACK, but deliberately leaves TLS, TCP, and HTTP/1 upgrade to the caller. Not something you'd use directly unless you're building a custom HTTP stack.

Passes h2spec, which is the actual conformance test suite for HTTP/2 — not many implementations bother. The scope is deliberately narrow: it does the spec and nothing else, which means the surface area for bugs is limited. Active maintenance with commits as recently as this week. The HPACK fixture corpus (cross-validated against nghttp2, node, and multiple Haskell implementations) is unusually thorough for a header compression layer.

The API is low-level enough that using it directly is painful — you're managing `SendStream`/`RecvStream` handles, poll-based flow control, and capacity manually. The documentation on docs.rs covers the types but gives almost no guidance on connection lifecycle or error handling patterns. No HTTP/3 or QUIC path, so if you're building something that needs to evolve beyond HTTP/2, you're starting over. The star count (1.5k) understates its actual usage because most people consume it transitively through hyper, which means issues that only surface in direct usage can linger.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →