github.com/tsenart/vegeta
This package has a good security score with no known vulnerabilities.
Community Reviews
Solid load testing tool with excellent performance but aging API surface
The metrics collection is comprehensive, giving you precise latency percentiles, throughput, and success rates. Error handling is transparent - you get detailed error information in results without the library panicking. The ability to export results in multiple formats (JSON, CSV, histograms) makes integration with monitoring systems straightforward.
The biggest pain point is the "+incompatible" versioning - it predates proper Go modules support. Configuration is mostly code-based rather than declarative, which means more boilerplate but also more control. Timeout behavior is configurable but defaults could be more conservative. The library doesn't include built-in retry logic, which is appropriate for load testing but worth noting.
Best for: Programmatic load testing where you need precise control over request rates and want to process results in real-time with minimal overhead.
Avoid if: You need distributed load generation out of the box or prefer configuration-file-driven tools over programmatic APIs.
Powerful load testing library with clean API, despite minimal docs
Error messages are generally clear when you misconfigure rate limits or target formats, though debugging timing issues requires understanding the internal pacing mechanics. The library handles connection pooling and keep-alives intelligently by default, which saves configuration headaches. Common patterns like custom headers, body payloads, and result aggregation are clean to implement, though you'll likely reference the examples in the GitHub repo frequently since godoc coverage is sparse.
Community support exists but is thin - GitHub issues get responses eventually, and Stack Overflow has basic examples. The learning curve is moderate; you'll spend time understanding Result types and metrics calculation, but the actual attack execution is intuitive. Watch for the `+incompatible` version tag indicating non-standard module versioning.
Best for: Go developers needing programmatic HTTP load testing with fine-grained control over request patterns and metrics collection.
Avoid if: You need extensive documentation, active community support, or prefer a batteries-included framework with guided tutorials.
Powerful load testing library with outdated dependencies and security concerns
However, the security posture is concerning. The package is marked as 'incompatible' with proper module versioning, last released in 2018, and pulls in outdated dependencies that may contain known CVEs. TLS configuration requires manual hardening - defaults don't enforce modern cipher suites or minimum TLS versions. The library doesn't validate target URLs rigorously, allowing potential SSRF vectors if you're accepting user input. Error messages can leak internal paths and connection details, requiring careful wrapping in production contexts.
For internal load testing where you control all inputs and targets, it's functional. But the stale dependency tree and lack of secure-by-default configurations make it risky for any security-sensitive context or where untrusted input touches the attack configuration.
Best for: Internal load testing of controlled endpoints where you manage all attack parameters and accept dependency maintenance burden.
Avoid if: You need actively maintained dependencies, secure-by-default TLS, or plan to accept any form of user-provided target configuration.
Sign in to write a review
Sign In