- Home
- gRPC Tools
- ghz
ghz
What it is
ghz is a free command-line utility and Go package for load testing and benchmarking gRPC services. It can support local debugging and performance regression checks in automated CI environments. Tests can define services using a .proto file, a compiled protoset bundle, 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, JSON, pretty JSON, HTML, Prometheus text exposition, or InfluxDB line protocol. The beta ghz-web companion stores reports in projects for viewing and comparison over time, with SQLite, MySQL, or PostgreSQL storage options. It provides ingest endpoints for reports. Installation options include prebuilt executables, Homebrew, or building from source. The project is identified as Apache-2.0 licensed, and documentation includes security connection options such as certificates and plaintext connections.
For and against
For
- Supports unary, streaming, and duplex gRPC calls
- Offers constant, step, and linear request rates
- Produces several report formats, including CSV and HTML
- ghz-web supports SQLite, MySQL, and PostgreSQL
Against
- The ghz-web companion is labeled beta
- ghz-web is self-hosted
The verdict
ghz provides gRPC load testing with configurable call patterns, request data, and output formats. The companion adds report tracking, but it is a beta server and web application.
Who it suits
ghz suits developers who need to exercise gRPC services locally or in CI and inspect results in varied formats. Teams wanting a web interface can also consider its beta self-hosted ghz-web companion.
Plans and prices
ghz
Open-source gRPC load testing CLI and Go package; complementary web application is beta
Read 4 Oct 2026 · github.com
On the record
- API
- ghz-web provides ingest endpoints for raw JSON reports, including an endpoint that creates a project automatically.ghz.sh · read 4 Oct 2026
- Call types
- The maker says ghz can test unary, streaming, and duplex calls using JSON or binary data.ghz.sh · read 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 · read 4 Oct 2026
- Dynamic data
- Go templates and template functions can generate request data and metadata for each request.ghz.sh · read 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 · read 4 Oct 2026
- Installation
- The maker documents downloadable operating-system binaries, Homebrew, source builds, and Docker installation.github.com · read 4 Oct 2026
- Integrations
- The documentation includes prebuilt Grafana dashboards and describes InfluxDB output and use with Prototool.ghz.sh · read 4 Oct 2026
- License
- The GitHub repository identifies the project license as Apache-2.0.github.com · read 4 Oct 2026
- Load patterns
- Load options include constant, step, and linear request rates.ghz.sh · read 4 Oct 2026
- Load schedules
- Load can use constant, step, or line schedules to control request rates.ghz.sh · read 4 Oct 2026
- Output formats
- Results can be emitted as summary, CSV, JSON, pretty JSON, HTML, Prometheus text, or InfluxDB line protocol.ghz.sh · read 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 · read 4 Oct 2026
- Protocol definitions
- Tests can use a .proto file, a compiled protoset bundle, or server reflection.ghz.sh · read 4 Oct 2026
- Protocol inputs
- ghz can use a proto file, a prebuilt protoset bundle, or server reflection.ghz.sh · read 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 · read 4 Oct 2026
- Report formats
- The CLI documents summary, CSV, HTML, JSON, Prometheus text exposition, and InfluxDB line protocol output formats.ghz.sh · read 4 Oct 2026
- RPC patterns
- ghz supports unary, streaming, and duplex calls using JSON or binary data.ghz.sh · read 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 · read 4 Oct 2026
The review
Overview
ghz is a free command-line tool and Go package for driving load against gRPC services. It suits developers who need configurable performance checks for local debugging or CI regression work. Its CLI is the clear strength; the optional report dashboard is beta and must be self-hosted.
Key features
Tests can identify an RPC service through a .proto file, a compiled protoset bundle, or server reflection. ghz covers unary, streaming, and duplex calls with JSON or binary data, giving teams a way to exercise both request-response and ongoing exchanges. Constant, step, and linear schedules control how request rates change, which helps shape a run around a chosen load profile.
Go templates can generate request data and metadata for each call, drawing on values such as worker ID, request number, method name, and timestamps. This enables varied traffic, though realistic scenarios depend on the templates the test author builds. Results can be emitted as summaries, CSV, JSON, pretty JSON, HTML, Prometheus text exposition, or InfluxDB line protocol. Documentation also covers Grafana dashboards, InfluxDB output, and Prototool use, making the CLI workable with several reporting paths without the companion.
Connection options include CA certificates, client certificates and keys, and a server-name override. Plaintext connections and skipped TLS verification are also supported; the latter options call for care in environments where transport security matters. Installation can use prebuilt executables, Homebrew, or a build from source with make or Go. The project uses the Apache-2.0 license.
Pricing
ghz costs nothing. The free plan includes the open-source CLI and Go package, with no seat or usage cap stated. There is no paid tier or trial offer described. ghz-web is a complementary beta application, not a priced upgrade; teams that want its report tracking need to install and operate it themselves.
Platforms
The product is listed for API use, Linux, and self-hosted deployment. ghz-web is distributed as a prebuilt executable for the user's operating system and accepts configuration through environment variables or a configuration file. It can store results in SQLite, MySQL, or PostgreSQL, giving teams a choice of local or server database arrangements.
Who it's for
ghz is a strong fit for Go developers and platform teams that need repeatable gRPC load checks and can work comfortably with a CLI. CI users can use it for performance regression checks, while the range of call types and load schedules serves teams studying more than simple unary traffic. It is less suitable for readers who expect a managed graphical service or a polished web reporting product: ghz-web is beta and self-hosted.
Pros and cons
- Pros: Multiple protocol-definition options, three RPC patterns, and adjustable request-rate schedules cover a broad set of gRPC load scenarios.
- Pros: Per-request templates and several output formats let teams shape traffic and feed results into existing analysis workflows.
- Pros: The free CLI and Go package support local and CI use without a paid plan.
- Cons: Dynamic test data must be authored by the user, so traffic realism depends on the quality of those templates.
- Cons: ghz-web is beta and requires self-hosting, adding operational work for teams that want persistent, comparable reports.
- Cons: Plaintext and TLS-verification bypass options require deliberate handling in security-sensitive environments.
Alternatives
For other options, see gRPC Tools. Choose gRPC CLI for a free tool focused on building from source and unary RPC calls across Linux, macOS, and Windows. grpcmock-go is a free Go module of gRPC testing utilities for Linux and self-hosted use. Kreya is a freemium cross-platform option for individuals, though its free plan keeps request history to the latest request.
Chiko, gRPC Swagger, protoc-gen-doc, sabledocs, and Bandura are also listed as alternatives.
Verdict
Choose ghz if you need a free, scriptable way to load-test gRPC services across multiple RPC patterns and integrate results into a CI or monitoring workflow. Its main advantage is the breadth of control in the CLI; look elsewhere if your decision depends on a ready-to-use web reporting interface, since ghz-web remains a beta project you must run yourself.