Tool

grpc-tools

Bradley Kemp's suite of gRPC debugging tools, described as Fiddler or Charles for gRPC. grpc-dump runs as a local HTTP(S) proxy that logs every gRPC and gRPC-Web call an application makes as a JSON stream with service and method names, metadata, any error status and each message both raw and parsed; without the .proto files it decodes messages heuristically. grpc-replay re-sends the recorded requests and checks the server's responses, grpc-fixture answers clients from a saved dump, and the grpc-proxy Go library underlies them.

Targets
App · Protocol
Category
Protocol analysis tools
Relationship
Foundation tool
Sources reviewed

Requirements & limits

  • Reviewed at master commit 928b1b9 (2023-11-14), the last push. The latest release is v0.2.6 (2020-06-30), and master has six later commits, mostly dependency bumps plus a 64 MB message-size limit. The README calls the tools alpha and warns of breaking changes between releases.
  • Install through the author's Homebrew tap, the release zips (amd64 builds for Linux, macOS and Windows) or go install; go.mod declares Go 1.13 and requires grpc-go v1.26.0, golang/protobuf v1.4.2 and protoreflect v1.7.0. The application under test must be pointed at the proxy, and the README notes that clients connecting to localhost usually ignore proxy settings; the system_proxy option is documented for macOS.
  • Clients that expect TLS need a certificate they trust for the intercepted domains; the README recommends mkcert-generated certificates installed on the user's own machine. Supplying .proto roots or descriptors gives exact decoding instead of the heuristic one. The integration tests use a small test.proto and their own recorded dump and fixture files; CircleCI configuration is included.
  • MIT license. Dumps contain full message contents and metadata, including any credentials in headers, so they should be treated as sensitive. This record covers inspecting the user's own applications and services; this review ran nothing.

About this entry

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  2. grpc-dump/README.md GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  3. grpc-proxy/README.md GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  4. grpc-replay/README.md GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  5. grpc-fixture/README.md GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  6. CHANGELOG.md GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  7. go.mod GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  8. .goreleaser.yml GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  9. LICENSE GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  10. integration_test GitHub · bradleyjkemp/grpc-tools · Revision 928b1b9
  11. https://github.com/bradleyjkemp/grpc-tools/releases/tag/v0.2.6

More in Protocols

All 66 entries in Protocols