Skip to content

Goku

Goku is an HTTP load testing application written in Rust

Install

$cargo install goku-bench

Install command taken from the project's README or registry entry. Always review code before running it.

Goku

Goku is a high-performance, scalable HTTP load-testing tool designed for benchmarking and performance analysis of web services. Inspired by tools like Drill and Vegeta, Goku offers modern features and simplicity for engineers to simulate and analyze traffic efficiently.

Features

  • Fast and scalable HTTP load testing
  • Real-time live stats during long tests
  • Rate limiting (--rps) for constant-rate load profiles
  • Multi-step sequential scenarios (multiple endpoints per test)
  • Variable templating in URLs and bodies ({{uuid}}, {{seq}}, {{random_int}}, …)
  • Built-in authentication (Bearer token, Basic auth)
  • ASCII latency histogram in text output
  • compare subcommand to diff two benchmark runs
  • Output to file (--output-file) and per-request log (--results-log)
  • HTTP/1.1, HTTP/2 support
  • Multiple output formats: text, json, csv
  • MCP (Model Context Protocol) server for LLM/agent integration
  • Send results to Observability Insight to keep a history of runs and compare them

Install CLI

Automatic download (Linux, OSX, WSL)

curl -sSL https://raw.githubusercontent.com/jcaromiq/goku/v3.0.0/scripts/install.sh | sh

Using Cargo

cargo install goku-bench
goku --version

Manual download

Go to the Goku's GitHub Releases page and download the latest .tar.gz for your system:

  • Linux (x86_64, arm64)
  • macOS (x86_64)
  • Windows (x86_64)

From source

cargo build --release

Observability Insight integration

Goku can send the final results of every run to a project in Observability Insight, where you get the history of your performance tests and can compare runs to spot regressions. Enable the Goku connector in your project first.

Log in (local machine)

goku login

Goku opens the browser, you log in and choose the project, and a token for that project's Goku connector is stored in ~/.config/goku/credentials.json (permissions 0600; on macOS/Windows the OS config directory is used). Use --no-browser to only print the URL, and --portal-url to point to another portal.

Send results

goku -c 50 -d 30 --target https://api.example.com/users --report --report-name "users list" --report-tag nightly

Only the final summary (throughput, latency percentiles, status codes and the test configuration) is sent. Query strings and credentials in target URLs are stripped before sending. If the report cannot be sent, Goku exits with a non-zero status.

CI

Browsers are not available in CI: create a token in the project's Goku connector settings and expose it as GOKU_OI_TOKEN (optionally GOKU_OI_URL for another portal). Environment variables take precedence over the credentials file. Commit and branch are detected on GitHub Actions and GitLab CI.

- run: goku -c 20 -d 60 --target https://staging.example.com --report --report-name "staging smoke"
  env:
    GOKU_OI_TOKEN: ${{ secrets.GOKU_OI_TOKEN }}

Status and logout

goku status   # project, connector and token in use
goku logout   # removes the local credentials file

goku logout only deletes the local file: revoke the token from the Goku connector settings in the portal to invalidate it.


Similar plugs

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts. 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI…

An open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM

AI Agent Assistant & development framework that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative.