finds.dev← search

// the find

wg/wrk

★ 40,355 · C · NOASSERTION · updated Dec 2023

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →