Vegeta is an HTTP load testing tool and library built in Go that operates as both a command-line utility and a programmatic interface for developers.
The tool addresses the need to stress-test HTTP services with a constant request rate while avoiding the coordinated omission problem, which causes load generators to underreport latency when the system under test becomes slow. Vegeta achieves this through careful timing mechanisms that account for delayed responses. It provides extensive reporting functionality and supports distributed load testing scenarios, making it suitable for evaluating system behavior under sustained load across multiple machines.
Developers should choose Vegeta if they need a lightweight, composable load testing solution that integrates well with UNIX pipelines and shell scripting. The tool works well for teams already using Go or those who prefer command-line interfaces over graphical tools. It suits projects ranging from simple HTTP endpoint testing to large-scale distributed load testing campaigns. The tool is straightforward to deploy, available as a static binary and through multiple package managers, which eliminates complex installation procedures.
The project maintains active development with regular updates to both the CLI and library components, which are versioned separately to isolate breaking changes. The codebase includes profiling support for CPU and heap analysis, allowing developers to diagnose performance bottlenecks during load testing runs. Configuration options cover connection management, DNS caching strategies, TLS client certificates, and request body handling including chunked transfer encoding. The project accepts contributions through a defined process and provides comprehensive documentation for command-line usage and library integration.