rakyll

    rakyll/hey

    HTTP load generator, ApacheBench (ab) replacement

    backend
    Go
    Apache-2.0
    19.6K stars
    1.3K forks
    19.6K watching
    Updated 2/27/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    75

    Weekly Growth

    +0

    +0.0% this week

    Contributors

    1

    Total contributors

    Open Issues

    182

    Generated Insights

    About hey

    hey

    Build Status

    hey is a tiny program that sends some load to a web application.

    hey was originally called boom and was influenced from Tarek Ziade's tool at tarekziade/boom. Using the same name was a mistake as it resulted in cases where binary name conflicts created confusion. To preserve the name for its original owner, we renamed this project to hey.

    Installation

    Package Managers

    macOS:

    • Homebrew users can use brew install hey.

    Usage

    hey runs provided number of requests in the provided concurrency level and prints stats.

    It also supports HTTP2 endpoints.

    Usage: hey [options...] <url>
    
    Options:
      -n  Number of requests to run. Default is 200.
      -c  Number of workers to run concurrently. Total number of requests cannot
          be smaller than the concurrency level. Default is 50.
      -q  Rate limit, in queries per second (QPS) per worker. Default is no rate limit.
      -z  Duration of application to send requests. When duration is reached,
          application stops and exits. If duration is specified, n is ignored.
          Examples: -z 10s -z 3m.
      -o  Output type. If none provided, a summary is printed.
          "csv" is the only supported alternative. Dumps the response
          metrics in comma-separated values format.
    
      -m  HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS.
      -H  Custom HTTP header. You can specify as many as needed by repeating the flag.
          For example, -H "Accept: text/html" -H "Content-Type: application/xml" .
      -t  Timeout for each request in seconds. Default is 20, use 0 for infinite.
      -A  HTTP Accept header.
      -d  HTTP request body.
      -D  HTTP request body from file. For example, /home/user/file.txt or ./file.txt.
      -T  Content-type, defaults to "text/html".
      -a  Basic authentication, username:password.
      -x  HTTP Proxy address as host:port.
      -h2 Enable HTTP/2.
    
      -host	HTTP Host header.
    
      -disable-compression  Disable compression.
      -disable-keepalive    Disable keep-alive, prevents re-use of TCP
                            connections between different HTTP requests.
      -disable-redirects    Disable following of HTTP redirects
      -cpus                 Number of used cpu cores.
                            (default for current machine is 8 cores)
    

    Previously known as github.com/rakyll/boom.

    Discover Repositories

    Search across tracked repositories by name or description