ghz

What ghz is
ghz is a free command-line utility and Go package for load testing and benchmarking gRPC services. It supports local debugging and performance regression checks in automated CI environments. A test can define its protocol through a .proto file, a compiled protoset, or server reflection, and exercise unary, streaming, or duplex calls with JSON or binary data. Request rates can follow constant, step, or linear schedules. Go templates can generate request data and metadata for each call, using values such as worker ID, request number, method, and timestamps. The CLI can output summaries, CSV, HTML, JSON, Prometheus text exposition, or InfluxDB line protocol. Its complementary ghz-web application is a beta, self-hosted tool for keeping reports in projects and viewing or comparing results over time. ghz-web supports SQLite, MySQL, and PostgreSQL storage, and accepts reports through ingest endpoints. Installation options for the CLI include prebuilt executables, Homebrew, or building from source.
Who it suits
ghz suits developers who need to load-test gRPC services locally or in CI. Its web companion may suit teams that want to group and compare test reports over time.
What it does well
- Supports unary, streaming, and duplex calls.
- Accepts proto files, protosets, or server reflection.
- Offers constant, step, and linear load schedules.
- CLI supports several structured report formats.
- Free CLI with prebuilt installation options.
What to know first
- ghz-web is labeled beta.
- The web companion is self-hosted.
- ghz-web requires a configured database.
Limits
ghz is listed as free. The report-storing web companion is labeled beta and requires self-hosting; its documented storage options are SQLite, MySQL, and PostgreSQL.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| ghz | Open-source gRPC load testing CLI and Go package; complementary web application is beta | Free |
As ghz.sh lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Open the ghz website and choose an installation route: prebuilt executable, Homebrew, or build from source with make or Go.
- Prepare a service definition using a .proto file, protoset bundle, or server reflection.
- Configure a test with the desired call type, data format, and request-rate schedule.
- Run ghz and choose an output format for its results.
- For report tracking, install the ghz-web executable and configure its storage and settings.
- Send reports to ghz-web using an ingest endpoint.
Verdict
ghz provides gRPC load testing through a CLI and Go package, with varied protocol inputs, call types, load schedules, and report outputs. Teams seeking persistent, project-based report tracking can use the separate beta ghz-web companion.
Questions
How much does ghz cost?
The ghz plan is listed as free.
Is ghz open source?
Yes. The project license is Apache-2.0.
Which platforms are listed?
The listed platforms are API, Linux, and self-hosted.
What does ghz-web do?
The beta companion stores, displays, groups, tracks, and compares ghz test reports over time.
Which databases can ghz-web use?
It supports SQLite, MySQL, and PostgreSQL.
How can I install ghz?
The maker documents prebuilt executable downloads, Homebrew, and building from source with make or Go.
Facts from ghz's own pages
- API
- ghz-web provides ingest endpoints for raw JSON reports, including an endpoint that creates a project automatically. · ghz.sh, 4 Oct 2026
- Call types
- The maker says ghz can test unary, streaming, and duplex calls using JSON or binary data. · ghz.sh, 4 Oct 2026
- Custom request data
- Request data and metadata can use Go template actions evaluated for every request, with variables such as worker ID, request number, method name, and timestamps. · ghz.sh, 4 Oct 2026
- Dynamic data
- Go templates and template functions can generate request data and metadata for each request. · ghz.sh, 4 Oct 2026
- Ingest API
- The web server provides POST /api/ingest to create a project and ingest a report, or POST /api/projects/:id/ingest to add a report to an existing project. · ghz.sh, 4 Oct 2026
- Installation
- The maker documents prebuilt executable downloads, Homebrew installation, and building from source with make or Go. · ghz.sh, 4 Oct 2026
- Integrations
- The documentation includes prebuilt Grafana dashboards and describes InfluxDB output and use with Prototool. · ghz.sh, 4 Oct 2026
- License
- The GitHub repository identifies the project license as Apache-2.0. · github.com, 4 Oct 2026
- Load patterns
- Load options include constant, step, and linear request rates. · ghz.sh, 4 Oct 2026
- Load schedules
- Load can use constant, step, or line schedules to control request rates. · ghz.sh, 4 Oct 2026
- Output formats
- Results can be emitted as summary, CSV, JSON, pretty JSON, HTML, Prometheus text, or InfluxDB line protocol. · ghz.sh, 4 Oct 2026
- Pricing and trial
- The maker's opened pages describe ghz as a complementary tool and do not state a price or trial offer. · ghz.sh, 4 Oct 2026
- Protocol definitions
- Tests can use a .proto file, a compiled protoset bundle, or server reflection. · ghz.sh, 4 Oct 2026
- Protocol inputs
- ghz can use a proto file, a prebuilt protoset bundle, or server reflection. · ghz.sh, 4 Oct 2026
- Purpose
- ghz is a command line utility and Go package for load testing and benchmarking gRPC services, including local debugging and performance regression testing in automated CI environments. · ghz.sh, 4 Oct 2026
- Report formats
- The CLI documents summary, CSV, HTML, JSON, Prometheus text exposition, and InfluxDB line protocol output formats. · ghz.sh, 4 Oct 2026
- RPC patterns
- ghz supports unary, streaming, and duplex calls using JSON or binary data. · ghz.sh, 4 Oct 2026
- Security options
- The CLI documents CA certificates, client certificates and keys, server-name override, and options to skip TLS verification or use plaintext connections. · github.com, 4 Oct 2026
- Self-hosted storage
- ghz-web supports SQLite, MySQL, and PostgreSQL databases and can be configured with environment variables or a YAML, TOML, or JSON file. · ghz.sh, 4 Oct 2026
- Support
- The site links to the guide, Go documentation, GitHub repository, and a community support link labeled “Say Thanks!”. · ghz.sh, 4 Oct 2026
- Web application
- The beta ghz-web companion stores, displays, compares, and tracks test results over time. · ghz.sh, 4 Oct 2026
- Web companion
- ghz-web is a complementary server and web application for storing, viewing, and comparing ghz test results; the maker labels it beta. · ghz.sh, 4 Oct 2026
- Web report status
- Reports and projects have OK or FAIL status, and a project reflects the status of its latest report. · ghz.sh, 4 Oct 2026
- Web result tracking
- ghz-web groups individual test reports into projects so results can be tracked, analyzed, and compared over time. · ghz.sh, 4 Oct 2026
Where ghz stands on Freedom251
- gRPC Tools#4 of 24