「サービス間通信を高速に処理したい」
「PythonでgRPCを利用したい」
このような場合には、grpcioがオススメです。
この記事では、grpcioについて解説しています。
本記事の内容
- grpcioとは?
- grpcioのシステム要件
- grpcioのインストール
- grpcioの動作確認
それでは、上記に沿って解説していきます。
grpcioとは?
grpcioとは、gRPC用のPythonパッケージのことを言います。
そして、gRPCとはGoogleがRPCを実現するために開発した仕組みです。
RPCとは、Remote Procedure Callの略です。
日本語で言うと、RPCは遠隔手続き呼び出しとなります。
gRPCは技術的には、以下をベースとします。
- HTTP/2
- Protocol Buffers
これらを見てもわかるように、gRPCは高速にデータを転送する仕組みだと言えます。
Protocol Buffersについては、次の記事で説明しています。
ちなみに、Protocol BuffersもGoogleが開発しています。
また、grpcio-toolsというパッケージが存在しています。
grpcioを利用する上では、grpcio-toolsもインストールしておきましょう。
以上、grpcioについて説明しました。
次は、grpcioのシステム要件を説明します。
grpcioのシステム要件
現時点(2022年5月)でのgrpcioの最新バージョンは、1.46.1となります。
この最新バージョンは、2022年5月12日にリリースされています。
また、grpcio-toolsの最新バージョンも1.46.1となります。
grpcioとgrpcio-toolsは、セットと捉えることができます。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
ちょっとサポートし過ぎですね。
基本的には、以下のPython公式開発サイクルに従えば問題ありません。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
すでに3.6はサポート対象外です。
そのため、3.7以降へのサポートだけで十分と言えます。
よって、Python 3.7以降を利用しましょう。
これがgrpcioのシステム要件では、最も重要なポイントになります。
もし3.6以下であれば、アップグレードしましょう。
現時点で最新の3.10.4へのアップグレードは、次の記事でまとめています。
以上、grpcioのシステム要件を説明しました。
次は、grpcioのインストールを説明します。
grpcioのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.4
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ------------ ------- pip 22.1 setuptools 62.2.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、grpcioのインストールです。
同時に、grpcio-toolsもインストールしましょう。
これらのインストールは、以下のコマンドとなります。
pip install grpcio grpcio-tools
インストールには、少しだけ待たされます。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ------------ ------- grpcio 1.46.1 grpcio-tools 1.46.1 pip 22.1 protobuf 3.20.1 setuptools 62.2.0 six 1.16.0 wheel 0.36.2
protobufに依存していることが確認できます。
以上、grpcioのインストールを説明しました。
次は、grpcioの動作確認を行います。
grpcioの動作確認
gRPCの動作を確認するには、クライアントとサーバーの両方が必要です。
それらのコードをゼロから用意するのは、それなりに手間がかかります。
その手間を省くために、用意されているサンプルを利用します。
gitコマンドが利用可能である前提で説明を進めます。
LinuxやmacOSなら、gitコマンドについての説明は不要でしょう。
Windowsの場合は、次の記事を参考にしてgitコマンドを使えるようにしてください。
まずは、サンプルの取得です。
$ git clone -b v1.45.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc
ここでもう一つターミナルを開きます。
クライアントとサーバーの両方が必要ということです。
それぞれのターミナルで指定されたディレクトリに移動します。
$ cd grpc/examples/python/helloworld
移動できたら、それぞれのターミナルで以下の順番にプログラムを起動。
サーバー
$ python greeter_server.py
クライアント
$ python greeter_client.py Greeter client received: Hello, you!
クライアントで上記のように表示されれば、OKです。
gRPC通信ができていると言えます。
以上、grpcioの動作確認を説明しました。