A couple weeks ago i decided to learn a bit more about HTTP and got the urges of starting a new http client from scratch, so i built Quiver, the idea was pretty much a toy project, albeit there are still some RFC stuff missing, the results are pretty good. I inspired myself quite a bit in hackney and finch, but with some pet peeves of my own. I tried to benchmark it as fair as possible against Finch, the benchee results are in the repo.
Features
- HTTP/1.1 and HTTP/2 – automatic protocol handling with TLS+ALPN
- Connection pooling – NimblePool for HTTP/1, GenStateMachine coordinator for HTTP/2
- Streaming responses – lazy body streams for large payloads and SSE
- Origin-based routing – exact, wildcard, and default pool rules per origin
- Structured errors – three error classes (transient, invalid, unrecoverable)
- Telemetry – request spans, connection lifecycle, and pool queue depth events
- Supervised – pools start lazily and live under your application’s supervision tree
Now, the next item in my roadmap is to implement HTTP/3 support, maybe starting with quicer.






















