gitwtfhub

wtf is hey?

rakyll/hey — explained in plain English

Analysis updated 2026-06-21

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

TL;DR

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

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

REASON 4

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

What's in the stack?

Go

How it stacks up

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 spin it up?

Difficulty · easy Time to first run · 5min

Wtf does this do

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.

Yoink these 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

wtf 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.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.