终端 API 客户端,把 HTTP、GraphQL、gRPC、WebSocket 和 SSE 请求保存为可放入 git 管理的 .http 文件。
- 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
在 macOS 上通过 Homebrew 安装 grpcurl
brew install grpcurl - 2
或使用 Go 工具链从源码安装
go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest - 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 数据每日更新。
相关项目
199059GoApache-2.0更新于 4天前
Hurl 是一个命令行工具,用纯文本格式定义并运行、测试 HTTP 请求。
1.9万750RustApache-2.0更新于 昨天
一款友好、快速的命令行 HTTP 请求工具,沿用 HTTPie 的大部分语法并提升启动性能。
8139151RustMIT更新于 4天前
将 OpenAPI 与 Postman Collection 文件转为模拟 API 服务器,并支持请求校验与校验代理的命令行工具。
5052414TypeScriptApache-2.0更新于 10天前
基于终端的 HTTP 客户端,用可纳入版本管理的 YAML 配置定义并执行 REST 请求。
123040RustMIT更新于 5天前
一款运行在终端中的 HTTP API 客户端,可替代 Postman 和 Insomnia,请求以 YAML 文件保存。
1.3万291GoApache-2.0更新于 7天前