// the find
rakyll/hey
HTTP load generator, ApacheBench (ab) replacement
hey is a single-binary HTTP load generator that replaces Apache Benchmark. You point it at a URL, set concurrency and request count, and get a latency histogram, percentile breakdown, and status code summary back. It's the go-to quick tool for developers who need to sanity-check a service under load without standing up a full k6 or Gatling setup.
HTTP/2 support is a genuine differentiator over ab, which still trips people up when testing modern stacks. The duration-based mode (-z) is more useful in practice than request-count mode for capacity testing — you can run it for 30 seconds and let your monitoring tell the rest of the story. Output is clean and the latency histogram is immediately readable. Single static binary, no runtime dependencies, installs in seconds.
The repo is effectively in maintenance-only mode — last meaningful feature work was years ago and the issue tracker is full of PRs that never get merged. No support for dynamic request payloads or variable substitution, so any test beyond a single fixed request requires a wrapper script. CSV is the only machine-readable output format; no JSON, so piping results into dashboards is awkward. The -q rate limit applies per worker rather than globally, which is a footgun — 10 QPS with 50 workers is 500 QPS, not 10.