Repolode
fullstorydev

fullstorydev/grpcurl

面向 gRPC 服务的命令行工具,类似 curl,使用 JSON 调用 RPC 方法。

可替代:Postman

Star
12,861
Fork
589
未关闭 Issue
121
最近提交
9天前

这是什么?

grpcurl 是一个命令行工具,用于在终端中调用 gRPC 服务的 RPC 方法。gRPC 默认使用二进制的 protocol buffers 编码,普通 curl 无法直接与之通信。grpcurl 接收 JSON 格式的请求体,自动转换为 protobuf 发送,并把响应以可读形式输出。

它支持三种获取服务结构的方式:查询开启了 server reflection 的服务端、读取 .proto 源文件,或加载编译好的 protoset 文件。工具覆盖一元调用和各类流式方法,双向流可在交互式终端中通过标准输入驱动。同时支持 TLS、明文连接以及需要客户端证书的双向 TLS。

除命令行工具外,仓库还提供 Go 库包,可用于构建其他动态调用 gRPC 接口的工具。

核心功能

  • 01自动将 JSON 请求体转换为 protobuf 后发送。
  • 02支持一元调用以及服务端流、客户端流、双向流方法。
  • 03可通过 server reflection、.proto 文件或 protoset 文件获取服务结构。
  • 04支持明文、TLS 和双向 TLS 连接。
  • 05可列出服务、查看符号定义,并导出 proto 或 protoset 文件。

适用场景

  • 在终端中发送测试请求,调试 gRPC 服务。
  • 结合 jq 等工具在 shell 脚本中调用 gRPC 接口。
  • 通过列出服务和方法,快速了解陌生的 gRPC API。
  • 借助 Go 库开发动态调用 gRPC 接口的内部工具。

快速上手

  1. 1

    在 macOS 上通过 Homebrew 安装 grpcurl

    brew install grpcurl
  2. 2

    或使用 Go 工具链从源码安装

    go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
  3. 3

    列出支持反射的服务器上的服务

    grpcurl localhost:8787 list

使用前须知

  • 调用需要 gRPC 服务器;若服务器不支持反射,还需提供 proto 源文件或 protoset 文件以理解接口结构。

标签

常见问题

grpcurl 是什么?
面向 gRPC 服务的命令行工具,类似 curl,使用 JSON 调用 RPC 方法。 grpcurl 是一个命令行工具,用于在终端中调用 gRPC 服务的 RPC 方法。gRPC 默认使用二进制的 protocol buffers 编码,普通 curl 无法直接与之通信。grpcurl 接收 JSON 格式的请求体,自动转换为 protobuf 发送,并把响应以可读形式输出。
grpcurl 可以免费使用吗?用的什么许可证?
grpcurl 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
grpcurl 还在维护吗?
活跃维护中。grpcurl 最近一次提交是在 2026年10月13日。
grpcurl 适合用来做什么?
在终端中发送测试请求,调试 gRPC 服务。 结合 jq 等工具在 shell 脚本中调用 gRPC 接口。 通过列出服务和方法,快速了解陌生的 gRPC API。 借助 Go 库开发动态调用 gRPC 接口的内部工具。
grpcurl 怎么安装和运行?
在 macOS 上通过 Homebrew 安装 grpcurl: brew install grpcurl 或使用 Go 工具链从源码安装: go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest 列出支持反射的服务器上的服务: grpcurl localhost:8787 list
在哪里获取 grpcurl?
源代码和安装说明在 GitHub 上:https://github.com/fullstorydev/grpcurl

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目