gopher-glide

module
v0.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2026 License: MIT

README ΒΆ

Gopher Glide Logo

Gopher-Glide (gg) πŸš€

Run your IDE `.http` files under heavy concurrent load. Zero scripting required.

Build Release codecov Go Report Card JetBrains Plugin Version

Gopher Glide TUI Demo


πŸ€·β€β™‚οΈ 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.

πŸ”„ Stateful Journeys & Variable Extraction

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

Directories ΒΆ

Path Synopsis
cmd
gg command
internal
engine/hive
Package hive implements the Hive Engine β€” an Actor Model load engine.
Package hive implements the Hive Engine β€” an Actor Model load engine.
snap
Package snap provides behavioral snapshot capture for gg load test runs.
Package snap provides behavioral snapshot capture for gg load test runs.
tui
ui
Package ui provides the Renderer abstraction that decouples application logic from the presentation layer.
Package ui provides the Renderer abstraction that decouples application logic from the presentation layer.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL