Skip to content

Repository files navigation

gRPC Python チュートリアル(RouteGuide ベース)

gRPC のサーバ・クライアントをゼロから構築するステップバイステップのチュートリアル。 題材は gRPC 公式 Python Basics の RouteGuide サンプル。

特徴

  • 段階的に実装: 各章で小さな差分を書き足しながら学ぶ。公式は完成形コードが配布されているが、本チュートリアルは空のファイルから手で書くことで gRPC の構成要素を1つずつ体感できる。
  • Python ベース + Go で異言語体験: サーバ・クライアントは Python。第6章で Go クライアントを同じ proto から生成し、gRPC の最大のメリットである「言語を超えた通信」を体験する。
  • RouteGuide を4パターン網羅: Unary / Server streaming / Client streaming / Bidirectional streaming の4種類を1つの service で扱う。

目次

  1. gRPC とは? — RPC / protobuf / REST との違い
  2. セットアップ — venv、grpcio / grpcio-tools のインストール
  3. proto を書く(Unary 部分)Point / Feature / GetFeature の定義
  4. protoc でコード生成 — 生成物の中身を確認
  5. サーバ最小実装(Unary) — Servicer / GetFeature / 起動
  6. Python クライアント — channel / stub / 呼び出し
  7. Go クライアントから Python サーバを叩く — 異言語間通信
  8. Server streamingListFeatures を追加
  9. Client streamingRecordRoute を追加
  10. Bidirectional streamingRouteChat を追加
  11. grpcurl でサーバを手軽に叩く — gRPC 版 curl でコマンド1行から RPC を試す
  12. 実運用向けの発展トピック — エラー処理 / DDL / メタデータ / インターセプタ(参考)

進め方

  • 各章の README.md が手順書。好きな作業ディレクトリで ファイルを作りながら読み進める(本リポジトリのディレクトリ構成は意識しなくてよい)。
  • answer/ は「詰まったときの参照用」。章ごとにその章までの完成形コードが入っている。
  • 章を追うごとに proto / server / client が同じプロジェクト内で育っていく。

前提

  • Python 3.10+(本チュートリアルは 3.14 で動作確認)
  • Python の venv の基本(作成・activate)を使ったことがある
  • (第6章のみ)Go 1.21+

このチュートリアルは Claude Code と Z.ai GLM-5.2 を使用して作成しました。

About

gRPC のサーバ・クライアントをPythonでゼロから構築するステップバイステップのチュートリアル

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages