Gopher-Glide (gg) ๐
Run your IDE `.http` files under heavy concurrent load. Zero scripting required.
๐คทโโ๏ธ Why not just use wrk, k6, or JMeter?
If you want to run a quick concurrency test on an endpoint, you usually have to write a custom JavaScript file for k6, a Python script for Locust, or learn a heavy configuration language.
Gopher-Glide (gg) is an API traffic simulator that lets you skip the boilerplate. It directly executes standard IDE .http REST Client files that you probably already have sitting in your workspace.
| Feature |
Gopher-Glide (gg) |
k6 / Locust |
wrk / hey / vegeta |
| Scripting |
None (Reads .http natively) |
JavaScript / Python |
None (CLI flags only) |
| Traffic Control |
30-FPS Interactive TUI (Arrow keys) |
Requires configs |
Fixed concurrency only |
| CI/CD Assertions |
Semantic JSON Diffing (gg snap) |
Pass/Fail Thresholds |
Raw latencies only |
| Built-in Profiles |
Yes (--profile flash-sale) |
Requires scripting |
No |
| IDE Integration |
Native JetBrains Plugin |
External scripts |
External tools |
| Performance |
30k+ RPS per core (Actor Model) |
Medium-High |
Extremely High |
๐ Read the Full Documentation
โก 30-Second Quickstart
1. Install via Homebrew
brew install shyam-s00/tap/gg
2. Point it at any .http file
Create a simple api.http file (or use an existing one from your IDE):
GET http://localhost:8080/health
Accept: application/json
3. Run the simulation
Use a built-in profile to automatically shape the traffic (e.g., ramping up, sustaining, and cooling down):
gg --hive-engine --profile flash-sale --http-file api.http
You will instantly drop into the newly polished, butter-smooth 30-FPS Interactive Chaos TUI where you can monitor latencies and adjust the load in real-time without stutter or lag.
๐ Feature Deep-Dives
๐ The Hive Engine (Zero-Allocation Architecture)
The core of gg is built on a pure-Go lock-free Actor Model. By isolating connections into ultra-lightweight Goroutines and tracking metrics via sharded lock-free atomics, gg operates at 0 allocs/op on the hot path. This means you can comfortably push over 30,000+ RPS on a standard developer machine without garbage-collection pauses destroying your latency percentiles.
โ๏ธ Benchmark: At 30,000 RPS target load, gg consumes 40% less memory (1.42 GB vs 2.38 GB) and delivers 3x more successful requests than k6. gg's dynamic Adaptive Backpressure acts as an intelligent edge proxyโgracefully throttling excess traffic when the target server breaks to ensure maximum goodput, instead of blindly hammering the network into a deadlock. Read the full benchmark breakdown to see how gg safely simulates massive traffic.
๐ฌ Semantic Regression Gates (gg snap)
Don't just test if your API is slowโtest if it's broken. By passing the --snap flag, Gopher-Glide infers your API's JSON schema in real-time. You can then use gg snap assert in your CI/CD pipeline to automatically break the build if a pull request spikes latency or alters a JSON payload contract.
๐ JetBrains IDE Integration
Gopher Glide features an official JetBrains plugin that brings load testing directly into your IDE. Run profiles directly from your .http files via the gutter icon, and explore semantic diffs using the Snap UI Tool Window.
No more writing custom JavaScript to test multi-step workflows. gg natively understands JetBrains HTTP variable extraction syntax. You can authenticate, extract a token using # @gg-export token = jsonpath: $.data.token, and instantly inject it into the next request using {{token}}.
Planned Features
- Chaos / Fault Injection โ Simulate poor network conditions (3G packet loss, latency jitter) to see how APIs handle degradation.
- Distributed Simulation Mesh โ Run
gg worker nodes across multiple servers/regions, controlled by a central gg master UI.
License
MIT