Jax / muxover Start a project

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-After header 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 MetricsCollector for Prometheus/StatsD.
  • Streaming — io.ReadCloser response bodies and io.Reader request bodies.
  • Multipart Builder — Helpers for multipart/form-data uploads.

Releases

  1. v0.1.6
  2. v0.1.5
  3. v0.1.4
  4. v0.1.3
  5. v0.1.1
  6. v0.1.0
All 7 releases on GitHub →

Need something built?

I take on freelance work in the same areas as my projects.

Start a project