ページ内ナビ
概要
gRPCはclientとserver間のRPCを定義・実行するframeworkです。Protocol Buffersのservice definitionからstubを生成し、HTTP/2 transport、streaming、deadline、metadata等を利用して複数言語のservice間通信を構築できます。このrepositoryはshared C++ coreと複数language bindingを収録します。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
service definitionからtyped client/server APIを生成する
Protocol Bufferでserviceとmessageを定義し、language別toolchainからclient stubとserver interfaceを生成することでRPC contractをcodeへ反映できます。
出典:[1]
HTTP/2を基盤にunary・streaming RPCを扱う
gRPC runtimeはHTTP/2-based RPC frameworkとして提供され、service間通信をtyped APIとして扱えます。languageごとのruntimeはpackage manager経由で導入できます。
shared C++ coreと複数language bindingを同一repositoryで開発する
このrepositoryにはC++ core、C++、Python、Ruby、PHP、Objective-C等が含まれ、Java、Go、Node、.NET等は別repositoryとして提供されます。
出典:[1]
向いている用途
service間で厳密なcontractと低latencyなRPCを共有したいdistributed systemに向く
schemaから生成したAPIを複数言語で共有し、streamingやmetadataを含むservice-to-service通信を統一したいmicroservicesやbackend systemに適します。
出典:[1]
導入前の確認
languageごとにpackage・repository・release cadenceが異なる
gRPC全体はmulti-language ecosystemですが、JavaやGoなどは別repositoryです。導入時は使用言語のruntime package、code generator、互換性matrixを個別に固定してください。
出典:[1]
1.84.0はxDS・subchannel・Python runtime等の変更を含む
v1.84.0ではCoreのxDS、weighted round robin、connection scaling、proxy handlingやPython AsyncIO/metadata等に修正が入っています。upgrade時は利用languageだけでなくcore側のrelease noteも確認します。
出典:[2]
参考にした公式資料
- [1]gRPC v1.84.0 README(2026-10-04)
- [2]gRPC v1.84.0 release(2026-10-04)
- [3]gRPC Python v1.84.0 package metadata(2026-10-04)
- [4]gRPC Python v1.84.0 version metadata(2026-10-04)
- [5]gRPC Apache 2.0 license(2026-10-04)
編集部からの補足
言語ごとにruntime repositoryとpackageが異なります。このrepositoryのrelease versionと、Java・Go・Node・.NET等の別runtime versionを同一視しないでください。
3ステップで試す
- 1
gRPC Python 1.84.0用のvirtual environmentを作る
repository releaseと同じ1.84.0へPython runtimeとProtocol Buffer code generatorを固定します。
python3 -m venv grpc-demo && . grpc-demo/bin/activate && python -m pip install --upgrade pip && python -m pip install 'grpcio==1.84.0' 'grpcio-tools==1.84.0' - 2
最小service definitionからPython stubを生成する
serverを起動せず、proto contractからmessage classとgRPC stubを生成します。
mkdir -p grpc-demo/work && printf '%s\n' 'syntax = "proto3";' 'package demo;' 'service Greeter { rpc SayHello (HelloRequest) returns (HelloReply); }' 'message HelloRequest { string name = 1; }' 'message HelloReply { string message = 1; }' > grpc-demo/work/hello.proto && . grpc-demo/bin/activate && python -m grpc_tools.protoc -I grpc-demo/work --python_out=grpc-demo/work --grpc_python_out=grpc-demo/work grpc-demo/work/hello.proto - 3
runtime versionと生成moduleを確認する
network接続を作らず、runtime versionと生成されたservice/stubだけを確認します。
. grpc-demo/bin/activate && PYTHONPATH=grpc-demo/work python -c 'import grpc, hello_pb2, hello_pb2_grpc; print(grpc.__version__); print(hello_pb2.DESCRIPTOR.services_by_name["Greeter"].full_name); print(hasattr(hello_pb2_grpc, "GreeterStub"))'
成長
成長の推移 · 直近30日
45,361 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
- Stars
- 45,361
- Forks
- 11,382
- Watchers
- 45,361
- Open Issues
- 1,355
- 所有者種別
- Organization
- 主要言語
- C++
- ライセンス
- Apache-2.0
- リポジトリ最終更新
- 2026/10/03
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Godot Engine118,086 Stars
共通タグ 2件 · 同じ言語
2D/3Dゲームを一つのエディタで構築し、デスクトップ・モバイル・Webへ展開する
C++ - OpenCV91,053 Stars
共通タグ 2件 · 同じ言語
5.0でtoolchainとAPI境界を更新したcomputer vision基盤
C++ - Bitcoin Core90,305 Stars
共通タグ 2件 · 同じ言語
Bitcoin P2P networkのblock・transactionを自分でfull validationし、optional wallet/RPCを同じnodeで運用する
C++ - HTTPie CLI38,647 Stars
共通タグ 3件 · 共通カテゴリ 1件
API requestを人が読めるterminal syntaxで組み立てる
Python - OpenSearch13,804 Stars
共通タグ 3件
分散indexで全文検索・analytics・observability・vector searchを支える
Java - Apache HttpClient1,535 Stars
共通タグ 2件 · 共通カテゴリ 2件
JavaアプリからHTTP/1.1・HTTP/2通信を行い、接続管理・認証・Cookie・キャッシュをまとめて扱う
Java
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。