The short version
wrk is the tool for one question: how many requests per second can this endpoint take from one box?
It is a single C binary with an event loop, so it saturates hardware that would choke JMeter, and Lua scripts cover custom headers, bodies, and simple response handling. Nothing else is there by design: no ramp profiles, no HTML reports, no distribution, and no HTTPS client tuning. Use it for micro-benchmarks, not user journeys.
- Strong
- Cost & licensing
- Adequate
- Scale & distribution, CI/CD & automation
- Limited
- Scripting & extensibility, Protocol coverage, Reporting & analysis, AI features
- Best for
- You need maximum HTTP throughput from a single machine
- License
- Open Source
- Pricing
- Free; Apache License 2.0.
- Deployment
- Self-hosted
- Scripting / languages
- C, Lua
- First release
- 2012
wrk review: the full verdict
Hands-onWhat wrk is
wrk is a single purpose HTTP benchmarking tool written in C. It uses an event loop with multiple threads to hold a fixed number of connections open against one URL for a fixed duration, and it reports requests per second and a latency distribution. That is the whole tool, and that is the point.
I keep wrk around for one question: how many requests per second can this endpoint take from one box? For that question nothing in this catalog answers faster or with less overhead.
In practice
Install it with brew or build from source, then run wrk -t4 -c100 -d30s against the URL. In seconds you have throughput, latency percentiles, and error counts. A Lua script lets you set headers, build request bodies, rotate paths, and inspect responses, which covers authenticated APIs and simple POST workloads.
Because it saturates hardware that would choke a JVM tool, wrk is ideal for framework and server micro-benchmarks, for tuning a reverse proxy, or for a quick sanity check on a new build before the real load test.
Where it falls short
Everything that makes a load test realistic is missing by design. No ramp-up, no stages, no think time, no multi-step user journeys. HTTP/1.1 only, so no HTTP/2, WebSocket, or gRPC. The output is text on the console; you parse it yourself if you want it in a dashboard. There is no distribution mode. Upstream releases are infrequent, and if you need a constant request rate rather than open-loop hammering, use the wrk2 fork instead.
AI features
None, and rightly so. wrk is a focused C benchmark and adding AI would be beside the point.
Bottom line: use wrk when you want raw HTTP throughput numbers from one machine in under a minute. For anything that resembles a user scenario, or anything you need to report on, reach for k6, Gatling, or JMeter.
Scorecard
Qualitative, 7 dimensionsStrong, Adequate, or Limited on each dimension. No numeric scores and no averaging, because a Limited rating on the one dimension you depend on outweighs any total.
How we rate: methodology. Ratings are refreshed with each hands-on pass, not on a fixed schedule.
Pros & cons
What stood out during testing, and what got in the way.
Pros
- Highest requests per second per core of common tools
- Zero dependencies, one binary
- Lua scripting for headers, bodies, and auth
- Ideal for framework and server micro-benchmarks
Cons
- HTTP/1.1 only
- No ramp-up, stages, or think time
- Text output only; no JSON or HTML
- Upstream releases are infrequent; consider wrk2 for constant-rate tests
Who it's for
A ten-second answer for teams shortlisting tools.
Pick wrk when
- You need maximum HTTP throughput from a single machine
- You are benchmarking a server or framework, not a user flow
- A quick latency histogram is all the reporting you need
Skip wrk when
- Realistic user scenarios with think time and ramps are required
- The target needs anything beyond HTTP/1.1
- Results must be shared as reports or trended over time
Getting started
Minutes to first scriptTen minutes. The whole interface is a handful of flags.
Review FAQ
Answer-shapedIs wrk worth it in 2026?
wrk is the tool for one question: how many requests per second can this endpoint take from one box? It is a single C binary with an event loop, so it saturates hardware that would choke JMeter, and Lua scripts cover custom headers, bodies, and simple response handling. You need maximum HTTP throughput from a single machine
When should you pick wrk?
You need maximum HTTP throughput from a single machine You are benchmarking a server or framework, not a user flow A quick latency histogram is all the reporting you need Together, these are the clearest signals that wrk fits the project.
When should you skip wrk?
Realistic user scenarios with think time and ramps are required The target needs anything beyond HTTP/1.1 Results must be shared as reports or trended over time Treat these constraints as reasons to compare alternatives before committing to wrk. Compare the current documentation, operating model, and total cost with the project requirements before making a final decision.
Does wrk have AI features?
None by design; a single-purpose C benchmark. Check the current product documentation before relying on these capabilities in production. Compare the current documentation, operating model, and total cost with the project requirements before making a final decision.