// the find
wg/wrk
Modern HTTP benchmarking tool
wrk is a C-based HTTP load generator that uses epoll/kqueue and pthreads to saturate a server from a single machine. The LuaJIT scripting hook lets you generate dynamic requests, process responses, and build custom reports without recompiling. It's for anyone who needs raw throughput numbers fast and doesn't want to install a JVM.
The multithreaded + async I/O design (borrowed from Redis's ae event loop) genuinely scales — hitting 700k+ req/s on commodity hardware is not marketing fiction. LuaJIT scripting is the killer feature: you can parameterize requests, chain auth flows, or compute custom percentile reports without touching C. The dependency footprint is minimal — just OpenSSL and LuaJIT, both vendored. The stats engine tracks HDR-style latency distribution, so you get meaningful tail numbers, not just averages.
The project has been effectively dead since 2016 — the last real commit was years ago, and the 2023 activity is just CI tweaks. HTTP/2 is not supported at all, which disqualifies it for any modern TLS-first service where multiplexing matters. There's no built-in support for variable request rates (constant concurrency only), so you can't model realistic traffic shapes or ramp-up scenarios without Lua hacks. The bundled OpenSSL 1.1.1i is EOL and carries known CVEs — you'll want to patch the Makefile to use a system OpenSSL before running this anywhere near a shared machine.