Developer Tools & Infrastructure Active v0.1.0 2026 AGPL-3.0

Surge

Lightning-fast, concurrent HTTP load testing tool in Go with CI quality gates

Go CLIHTTP BenchmarkingCI/CD GateTail LatencyAGPL-3.0
Surge editorial woodblock artwork
Linux & macOS
curl -fsSL https://raw.githubusercontent.com/jadmadi/surge/main/install | bash
Domain Developer Tools & Infrastructure
Languages Go
License AGPL-3.0
Status Active
The Problem

Why This Was Built

Existing load testing tools are either bloated enterprise suites or bare-bones curl loops that lack actionable tail-latency percentiles, automated health verdicts, and easily scriptable CI pipeline assertions.

The Solution

The Architectural Answer

A single static Go binary providing accurate percentile calculations, ramp-up schedules, think-time modeling, and structured JSON output for strict pipeline thresholds.

Capabilities

Key Features & Architecture

Calculates min, p25, p50, p75, p90, p95, p99, and max latency percentiles with histogram distributions
Four built-in workload presets: baseline, realistic, capacity, and spike testing
Automated diagnostic health verdicts: Excellent, Good, Fair, Poor with actionable remediation guidance
CI/CD quality gates via --fail-threshold error budgeting and machine-readable JSON output (-o json)
Traffic shaping with concurrency ramp-up curves (--ramp-up) and user think-time simulation (--think-time)
Throughput throttling via aggregate requests per second rate limiting (-rps)
Detailed classification of network failure modes (DNS, TLS handshake, connection resets, timeouts)
Custom HTTP headers (-H) with @file support, request bodies (-body), and automatic HTTPS for bare domains
Single static Go binary (~2 MB) with zero runtime dependencies cross-compiled for Linux, macOS, and Windows
Engineering

Technical Specifications

Primary Languages
Go
Frameworks & Tooling
net/http
Architecture & Execution Model
Goroutine worker pools, zero-allocation latency buckets, lock-free histogram metrics
Licensing Model
AGPL-3.0 (copyleft)
Release & Lineage
Active release cycle since 2026 · Maintained by @JadMadi
Knowledge

Frequently Asked Questions

How do I install Surge?

Run `curl -fsSL https://raw.githubusercontent.com/jadmadi/surge/main/install | bash` on Linux and macOS, or `go install github.com/jadmadi/surge@latest` if you have Go installed.

Can I use Surge as a quality gate in CI/CD pipelines?

Yes. Use `-o json` to assert metrics in pipeline scripts (e.g. with `jq`), or pass `--fail-threshold <pct>` to exit with status code 1 when the error rate exceeds your threshold.

How do presets work in Surge?

Presets provide battle-tested traffic models (`baseline`, `realistic`, `capacity`, `spike`). You can invoke them directly (e.g. `surge realistic https://example.com`) and override any specific flag like `-c` or `-d`.

How do I pass custom headers or authorization tokens?

Pass custom headers with `-H 'Authorization: Bearer <token>'` (repeatable), or read long tokens directly from disk using `-H @/path/to/token.txt`.