bursthttp
High-performance Go HTTP/1.1 client with pipelining and pooling.
Install
$ go get github.com/muxover/bursthttp About
bursthttp is a zero-dependency HTTP/1.1 client built for high-throughput workloads. It pipelines multiple requests over a single TCP connection, pools and reuses connections per host, and recycles request/response objects to minimize allocations. Built-in retry, DNS caching, metrics, streaming, proxy support, and graceful shutdown are included out of the box.
Features
- HTTP/1.1 Pipelining — Send multiple requests on one connection without waiting for responses.
- Per-Host Connection Pooling — Persistent connections with configurable pool size and idle eviction.
- Object Pooling —
sync.Pool-backed request/response reuse for near-zero allocation. - Adaptive Retry — 429 with
Retry-Afterheader sleeps exactly the server-specified delay; timeout/connection errors retry immediately; 5xx uses exponential backoff with jitter. - DNS Caching — In-memory resolution cache with TTL.
- Pluggable Metrics — Built-in collector with latency percentiles (p50/p95/p99), byte counters, pool events. Implement
MetricsCollectorfor Prometheus/StatsD. - Streaming —
io.ReadCloserresponse bodies andio.Readerrequest bodies. - Multipart Builder — Helpers for
multipart/form-datauploads.
Releases
All 7 releases on GitHub →Need something built?
I take on freelance work in the same areas as my projects.
Start a project