oha (Ohayou/おはよう) is a tiny, Rust-based HTTP load generator that sends load to web applications and displays real-time statistics via a terminal user interface (TUI). It is inspired by the tool rakyll/hey.
What it is
oha (Ohayou/おはよう) is a tiny, Rust-based HTTP load generator that sends load to web applications and displays real-time statistics via a terminal user interface (TUI). It is inspired by the tool rakyll/hey.
Features
Real-time TUI animation using ratatui
Rate limiting (queries per second)
Latency correction to avoid coordinated omission problem
Support for custom HTTP headers, methods, and body input (strings or files)
Support for HTTP/2, multipart POST, and basic authentication
Proxy support with configurable HTTP versioning
JSON output format support
Experimental HTTP/3 support via feature flag
Best for
Quick HTTP or protocol micro-benchmarks from a single machine
Teams that prefer open-source licensing and self-hosting options
Groups comfortable scripting in Rust
Not the best fit when
Full multi-protocol enterprise journeys and rich business-flow reporting
Teams unwilling to operate generators, results storage, and scaling
Architecture and concurrency
oha is typically driven as a CLI micro-benchmark with Rust. It favors single-host or simple distributed runs rather than enterprise controller grids.
Fact sheet
Specs
Scripting
Rust
Protocols
HTTPHTTPS
Operating systems
WindowsmacOSLinux
Tags
rustclihttptui
Repo health
★ 10521 · last push 2026-08-23
Latest release
v1.14.0 · 2026-02-28
v1.14.0 included a fix for issue #857 and general maintenance improvements.
oha is best for developers who need fast HTTP or protocol micro-benchmarks from a terminal. It is open source, so teams can self-host and extend it. Vendor: hatoo. Deployment model: self-hosted. Free; MIT License. Confirm details against the official site and a short proof-of-concept in your environment.
How does oha differ from Vegeta?
Compared with Vegeta, scripting centers on Rust rather than Go. oha lists protocols HTTP, HTTPS; Vegeta lists HTTP, HTTPS. Status is active versus active. Use the Test Rig to compare full specs side by side before a proof-of-concept. Confirm details against the official site and a short proof-of-concept in your environment.
What scripting language and concurrency model does oha use?
oha uses Rust for scripting or scenario definition. Runtime model: CLI-driven request generation with a lightweight concurrency model suited to single-host benchmarks. OS support: Windows, macOS, Linux. Protocols: HTTP, HTTPS. Match these to how your team already authors tests and which systems you must drive under load.
What is the cloud or enterprise path for oha?
oha is primarily self-hosted; teams typically run generators on their own machines, CI runners, or private cloud. Plan for generator capacity, network access to targets, and result storage yourself. As open source, commercial support or hosted siblings may exist separately. Check the official site. Pricing note: Free; MIT License.
What are known limitations of oha?
oha limitations to weigh: CLI micro-benchmarks excel at raw HTTP throughput but usually lack enterprise scenario orchestration, rich reporting, and multi-protocol suites; self-hosted tools require you to provision, scale, and observe load generators yourself. Status: active. Always validate against your target protocols and scale with a proof-of-concept.