ghz vs protoc-gen-doc
ghz
ghz.shprotoc-gen-doc
github.comSide by side
| Figure | ghz | protoc-gen-doc |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · gRPC Tools | 8.7 (#2) | 7.9 (#13) |
| Installation | The maker documents downloadable operating-system binaries, Homebrew, source builds, and Docker installation. | The project offers a Docker image, Go installation, prebuilt releases, and a Maven Central package. |
| License | The GitHub repository identifies the project license as Apache-2.0. | The software is distributed under the MIT License, which permits use, copying, modification, distribution, sublicensing, and sale subject to its terms. |
| Output formats | Results can be emitted as summary, CSV, JSON, pretty JSON, HTML, Prometheus text, or InfluxDB line protocol. | It can generate HTML, JSON, DocBook, and Markdown documentation from comments in .proto files. |
| 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. | protoc-gen-doc is a documentation generator plugin for the Google Protocol Buffers compiler. |
Plans
In their own words
ghz
ghz is a command-line utility and Go package for load testing and benchmarking gRPC services, including local debugging and performance regression checks in CI. Tests can define a service with a.proto file, a compiled protoset bundle, or server reflection, and exercise unary, streaming, or duplex calls using JSON or binary data. Load schedules include constant, step, and linear request rates. Go templates can generate request data and metadata for each call using values such as worker ID, request number, method name, and timestamps. The CLI can emit summary, CSV, JSON, pretty JSON, HTML, Prometheus text exposition, and InfluxDB line protocol results. Documentation also covers InfluxDB output, Prototool, and prebuilt Grafana dashboards. The complementary ghz-web application is labeled beta; it stores reports in projects for viewing and comparison over time, and supports SQLite, MySQL, or PostgreSQL storage. It accepts reports through ingest endpoints. The project is identified as Apache-2.0 licensed. Installation options include prebuilt executables, Homebrew, and building from source. The CLI is listed at free; the web companion is beta.
protoc-gen-doc
protoc-gen-doc is a documentation generator plugin for the Google Protocol Buffers compiler. It turns comments in .proto files into HTML, JSON, DocBook, or Markdown documentation, covering files, messages, fields, services and methods, enums and values, and extensions. It supports proto2 and proto3, including both in the same context. You can exclude files with path patterns and omit comments marked with the @exclude prefix. The plugin runs through protoc with the --doc_out and --doc_opt options; its source_relative flag places generated output in the same relative directory as the input. For customization, users can supply a Go template or use a stylesheet.css file to change HTML appearance. Installation options include Go, prebuilt releases, a Docker image, and a Maven Central package. It runs on Linux, macOS, and Windows and is self-hosted. The project is free under the MIT License, which allows use, modification, distribution, sublicensing, and sale under its terms. The license provides the software as is, without warranty.