gitmyhub

oha

Rust ★ 10k updated 8d ago

Ohayou(おはよう), HTTP load generator, inspired by rakyll/hey with tui animation.

oha is a fast, single-binary command-line tool for load testing web applications, point it at a URL, set a request count and concurrency level, and watch live latency and throughput stats in your terminal.

Rustsetup: easycomplexity 1/5

oha is a command-line tool for load testing web applications. You point it at a URL, tell it how many requests to send and how many connections to use at once, and it hammers the server while showing you a live dashboard in the terminal. The dashboard updates in real time as the test runs, showing request rates, latency distributions, response codes, and a histogram of response times.

It is written in Rust, which makes it fast and easy to install as a single binary. You can install it via Homebrew on Mac, winget on Windows, pacman on Arch Linux, or a simple cargo command if you have Rust already installed. Pre-built binaries are available on the releases page for all major platforms.

The tool supports HTTP/1, HTTP/2, and experimental HTTP/3. You can control the number of requests to send, set a time limit instead of a request count, cap the request rate in queries per second, add custom headers, send request bodies, and use basic authentication. There is an option to generate target URLs from a regular expression pattern, which lets you test endpoints with varying paths in a single run.

One feature called latency correction addresses a statistical problem common in load testing where fast responses are underrepresented because slow requests block the sampling. Enabling this flag gives a more accurate picture of actual latency under load.

The name comes from the Japanese greeting ohayou, meaning good morning. The project is named in that spirit and is open source. A Docker image is available if you prefer running it in a container rather than installing it directly.

Where it fits