Repolode
fullstorydev

fullstorydev/grpcurl

JSON入力でgRPCサーバーを呼び出す、curlのようなコマンドラインツール。server reflectionやprotoファイルからスキーマを取得できます。

代替できる製品:Postman

スター
12,861
フォーク
589
未解決の Issue
121
最終コミット
9 日前

これは何?

grpcurlを使うと、コマンドラインからgRPCサーバーのRPCメソッドを呼び出せます。gRPCは通信にバイナリ形式のProtocol Buffersを使うため、通常のcurlではこれらのサーバーと通信できません。grpcurlはリクエストボディとしてJSONを受け取り、protobufに変換して、レスポンスを読みやすい形式で出力します。

サービスのスキーマは、gRPC server reflectionに対応したサーバーへの問い合わせ、.protoソースファイルの読み込み、コンパイル済みprotosetファイルの読み込みという3つの方法で取得できます。単項メソッドとストリーミングメソッドに対応しており、ターミナルから対話的に操作する双方向ストリームも扱えます。TLSと平文のどちらのサーバーにも接続でき、クライアント証明書を使う相互TLSにも対応しています。

CLIに加えて、リポジトリには、gRPCエンドポイントを動的に呼び出すツールの構築に役立つヘルパーを備えたGoライブラリパッケージも含まれています。

主な機能

  • 01JSONのリクエストボディを送信し、自動的にprotobufへ変換します。
  • 02単項、サーバーストリーミング、クライアントストリーミング、双方向ストリーミングの各メソッドに対応しています。
  • 03server reflection、.protoファイル、protosetファイルからスキーマを取得します。
  • 04平文、TLS、相互TLSの接続に対応しています。
  • 05サービス一覧やシンボルの説明を確認でき、protoファイルやprotosetファイルをエクスポートできます。

ユースケース

  • ターミナルからテストリクエストを送信して、gRPCサービスをデバッグする。
  • たとえばjqでリクエストボディを生成し、シェルのパイプラインでgRPC呼び出しをスクリプト化する。
  • サービスやメソッドを一覧表示して、未知のgRPC APIを調べる。
  • Goライブラリを使ってgRPCエンドポイントを動的に呼び出す社内ツールを構築する。

クイックスタート

  1. 1

    Homebrewを使ってmacOSに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 とは?
JSON入力でgRPCサーバーを呼び出す、curlのようなコマンドラインツール。server reflectionやprotoファイルからスキーマを取得できます。 grpcurlを使うと、コマンドラインからgRPCサーバーのRPCメソッドを呼び出せます。gRPCは通信にバイナリ形式のProtocol Buffersを使うため、通常のcurlではこれらのサーバーと通信できません。grpcurlはリクエストボディとしてJSONを受け取り、protobufに変換して、レスポンスを読みやすい形式で出力します。
grpcurl は無料で使えますか?ライセンスは?
grpcurl は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
grpcurl は今もメンテナンスされていますか?
活発にメンテナンス中。grpcurl の最終コミットは 2026年10月13日 です。
grpcurl は何に使えますか?
ターミナルからテストリクエストを送信して、gRPCサービスをデバッグする。 たとえばjqでリクエストボディを生成し、シェルのパイプラインでgRPC呼び出しをスクリプト化する。 サービスやメソッドを一覧表示して、未知のgRPC APIを調べる。 Goライブラリを使ってgRPCエンドポイントを動的に呼び出す社内ツールを構築する。
grpcurl のインストール方法は?
Homebrewを使ってmacOSに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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト