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.

Apache JMeter
~200 MB
+ JVM runtime (~300 MB)
k6
~45 MB
Standalone binary
GoStress
~8 MB
Single binary, zero deps

What "Zero Dependencies" Actually Means

GoStress is written in Go and compiled to a native binary. This means:

# That's it. That's the entire setup.
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:

With GoStress, your CI step is:

# GitHub Actions example
- 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:

./gostress --serve-web --web-addr :8088 --dashboard-report report.json

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

# macOS
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 .