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 |
Live 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 Interactive Chaos TUI where you can monitor latencies and adjust the load in real-time.
π 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.
π¬ 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