TL;DR

Google が 2008 年に OSS として公開した IDL。データをバイナリ形式にシリアライズするので、サイズが小さく高速に通信できる。gRPC のシリアライズに使われている。

なぜ必要か

型安全にデータをやり取りできる。また、特定のプログラミング言語に依存しないので、定義から各言語のコードを生成できる。

仕組み

protoc コマンドで各言語のコードを生成する。2024 年時点で公式にサポートしている言語は C++、C#、Java、Kotlin、Objective-C、PHP、Python、Ruby である。それ以外の言語はサードパーティのプラグインとして公開されている。スキーマを起点にコードを生成するので、Schema first な開発ができる。

関連

出典