explaingit

rakyll/hey

Analysis updated 2026-06-21

20,002GoAudience · developerComplexity · 1/5Setup · easy

TLDR

A tiny command-line tool for load testing web servers, fire thousands of HTTP requests at a URL to see how your server holds up under traffic pressure.

Mindmap

mindmap
  root((hey))
    What it does
      HTTP load testing
      Performance benchmarking
      Traffic simulation
    Configuration
      Concurrency control
      Custom headers
      Duration mode
      Rate limiting
    Output
      Response time stats
      Status code breakdown
      CSV export
    Use Cases
      Verify API capacity
      Diagnose regressions
      Compare server configs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Verify that a new API endpoint can handle expected traffic before going live by simulating concurrent users.

USE CASE 2

Diagnose a performance regression by comparing throughput and response time before and after a code change.

USE CASE 3

Load test a POST endpoint with custom headers, auth tokens, and a JSON request body.

USE CASE 4

Run a fixed-duration stress test at a controlled rate limit and export results as CSV for further analysis.

What is it built with?

Go

How does it compare?

rakyll/heyinancgumus/learngoknadh/listmonk
Stars20,00219,96820,049
LanguageGoGoGo
Setup difficultyeasyeasymoderate
Complexity1/51/53/5
Audiencedeveloperdeveloperpm founder

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

In plain English

Hey is a command-line tool for load testing web applications. Load testing means sending a large number of HTTP requests to a server in a controlled way to see how it performs under pressure, how fast it responds, how many requests it can handle at once, and whether it fails or slows down when traffic spikes. Hey is positioned as a modern replacement for ApacheBench (ab), the classic but aging load testing tool. The tool is a single small binary, you download it and run it directly with no installation required. You point it at a URL and specify how many requests to send and how many to send at the same time (concurrency). After the test finishes, it prints a summary with statistics like response times, throughput, and status code distribution. It also supports running a test for a fixed duration instead of a fixed number of requests, rate limiting, custom HTTP headers and methods, request bodies, basic authentication, HTTP/2, and proxies. The examples in the README show the typical patterns clearly: sending 1,000 requests with 100 workers running in parallel, running a 30-second load test, making POST requests with custom data, or adding authorization headers. Results can also be exported as CSV for further analysis. You would use Hey when deploying a new API or web service and wanting to verify it can handle expected traffic levels, when diagnosing a performance regression, or when comparing two server configurations. It is written in Go and available as pre-built binaries for Linux, macOS, and Windows, and can also be installed on macOS via Homebrew.

Copy-paste prompts

Prompt 1
Show me the hey command to send 10,000 HTTP requests to my API at 500 concurrent connections, then explain each metric in the output summary.
Prompt 2
I need to load test a POST endpoint that requires a JSON body and a Bearer token. Write the exact hey command with the correct flags for method, body, and headers.
Prompt 3
Help me run a 60-second rate-limited load test on my server at exactly 100 requests per second using hey, and export the results as CSV.
Prompt 4
I want to compare my Go server's performance before and after adding a caching layer. Write a consistent hey test command I can rerun for both and compare throughput.

Frequently asked questions

What is hey?

A tiny command-line tool for load testing web servers, fire thousands of HTTP requests at a URL to see how your server holds up under traffic pressure.

What language is hey written in?

Mainly Go. The stack also includes Go.

How hard is hey to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is hey for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub rakyll on gitmyhub

Verify against the repo before relying on details.