TL;DR
Google が 2008 年に OSS として公開した IDL。データをバイナリ形式にシリアライズするので、サイズが小さく高速に通信できる。gRPC のシリアライズに使われている。
なぜ必要か
型安全にデータをやり取りできる。また、特定のプログラミング言語に依存しないので、定義から各言語のコードを生成できる。
仕組み
protoc コマンドで各言語のコードを生成する。2024 年時点で公式にサポートしている言語は C++、C#、Java、Kotlin、Objective-C、PHP、Python、Ruby である。それ以外の言語はサードパーティのプラグインとして公開されている。スキーマを起点にコードを生成するので、Schema first な開発ができる。