gRPCについて

概要

gRPC は、RPC (Remote Procedure Call) を実現するために Googleが開発したプロトコルの1つです。 gRPC は、HTTP/2をトランスポートとして利用しProtocol Buffers を IDLを使ってデータをシリアライズし、高速な通信を実現できる点が特長です。

gRPC は、HTTP/1.1ベースで実装されている RestAPIに置き換わる機能と して開発されています。

gRPC は、認証や双方向のストリーミング、フロー制御、ブロッキングと ノンブロッキングのバインディング、取り消しとタイムアウトといった 機能を提供しているため、クライアント/サーバの間の通信制御を容易に 実装が行えます。また、 Android Java, C#, C++, Dart, Go, Java, Kotlin/JVM,Node.js, Objective-C, PHP, Python, Rubyなど複数の言語で 利用できるため、クライアントとサーバで異なる言語を利用することも可能 になります。

gRPC は、Google以外にも、Netflixや、Dockerなどでも採用されています。 日本では、CookPadのサービス間通信などで利用されているようです。

参考リンク

gRPCプロジェクト本家

CookPadでの採用例について