Every popular load testing tool requires a runtime. JMeter needs Java. k6 needs a binary + Node for scripting. Locust needs Python. Artillery needs Node. Even "lightweight" tools like wrk2 need C compilation and often Lua for configuration.
GoStress needs nothing. It's a single statically-linked binary. Copy it to any machine and run it.
What "Zero Dependencies" Actually Means
GoStress is written in Go and compiled to a native binary. This means:
- No runtime installation — no JVM, no Node.js, no Python, no .NET
- No package manager needed — no npm install, no pip install, no gem install
- No compilation required — download and run
- Cross-platform — same binary works on Linux, macOS, and Windows
- No configuration files — everything is CLI flags
wget https://github.com/unnivm/gostress/releases/latest/download/gostress-linux-amd64
chmod +x gostress-linux-amd64
./gostress-linux-amd64 --url https://your-api.com --formats html
Why This Matters in Practice
Other Tools
- ✗ Install Java 11+ for JMeter
- ✗ Install Node 18+ for k6 scripts
- ✗ Install Python 3.8+ for Locust
- ✗ Configure PATH variables
- ✗ Resolve dependency conflicts
- ✗ Run out of disk on CI runners
GoStress
- ✓ Download binary
- ✓ Run it
- ✓ That's it
- ✓ No PATH config needed
- ✓ No dependency conflicts
- ✓ ~8 MB total
CI/CD Made Simple
This is where zero dependencies really shine. In a CI/CD pipeline, every dependency is a potential point of failure:
- Package registry downtime blocks your pipeline
- Version conflicts between tools
- Cached dependencies go stale
- Docker images bloat with runtimes
With GoStress, your CI step is:
- name: Load Test
run:
wget -q https://github.com/unnivm/gostress/releases/latest/download/gostress-linux-amd64 -O gostress
chmod +x gostress
./gostress --url ${{ secrets.API_URL }} --c 50 --d 30 --formats json
No setup-java action. No setup-node action. No caching. No version pinning. Just download and run.
The Web Dashboard
GoStress also includes a built-in web dashboard for viewing and sharing reports:
This gives you a protected web UI (with username/password auth) that displays the same dark-themed HTML report. No nginx. No reverse proxy. No web server configuration. The Go standard library handles everything.
The philosophy: Load testing should be as easy as running a single command. No learning curves, no configuration files, no dependency management. Just point at a URL and get results.
Getting Started
brew install unnivm/gostress/gostress
# Linux / Windows — download from GitHub
go install github.com/unnivm/gostress@latest
# Or build from source
git clone https://github.com/unnivm/gostress
cd gostress && go build -o gostress .