1つの.sk irファイルから、TypeScript、Python、Java、Go、C++など向けの型安全なデータモデルとRPCコードを生成する宣言的スキーマ言語。
protocolbuffers/protobuf
Googleが提供する、構造化データのシリアライズに使える言語・プラットフォーム非依存の形式とツールチェーン。protocコンパイラと多言語向けランタイムを備えています。
- スター
- 72,151
- フォーク
- 16,358
- 未解決の Issue
- 371
- 最終コミット
- 11 時間前
これは何?
Protocol Buffers(protobuf)は、プログラミング言語やプラットフォームに依存せず、構造化データをシリアライズする仕組みです。開発者は.protoファイルでデータを定義し、protocコンパイラが対象言語でメッセージを読み書きするコードを生成します。
このリポジトリには、C++で書かれたプロトコルコンパイラ、C++ランタイム、プロジェクトに同梱されるコアの.protoファイルが含まれています。Java、Python、Objective-C、C#、Ruby、PHPなどのランタイムライブラリは、サブディレクトリやprotobuf-go、protobuf-javascriptといった関連リポジトリにあります。リリースでは、C++以外のユーザー向けにビルド済みのprotocバイナリを提供しており、Bazel、Bzlmod、WORKSPACEのセットアップ方法もドキュメント化されています。
このプロジェクトは、RPCシステムのデータ交換形式として広く使われているほか、構造化レコードを保存する際にテキスト形式に代わるコンパクトな形式としても利用されています。
主な機能
- 01言語に依存しない.protoファイルでメッセージスキーマを定義できます。
- 02protocが複数の対象言語向けにシリアライズ用コードを生成します。
- 03C++、Java、Python、Go、C#、Rubyなどのランタイムを提供します。
- 04ビルド済みのprotocバイナリをGitHubのリリースで公開しています。
- 05Bazel、Bzlmod、従来のWORKSPACEビルドに対応しています。
ユースケース
- 異なる言語で実装されたサービス間で共有するデータ契約を定義する。
- gRPCスタイルのAPIで、RPCのリクエストとレスポンスのメッセージをシリアライズする。
- テキスト形式ではサイズが大きすぎる、または解析に時間がかかりすぎる場合に、コンパクトな構造化レコードを保存する。
クイックスタート
- 1
GitHubのリリースページからビルド済みのprotocバイナリをダウンロードします
- 2
開発者ガイドの入門チュートリアルに従ってください
使う前に知っておきたいこと
- メタデータではライセンスがNOASSERTIONと記載されているため、ライセンス条項が不明確です。
- mainブランチの先端は互換性のない変更によって壊れる可能性があるため、安定したビルドにはリリースを固定してください。
- C++ユーザーやコードの変更が必要な人は、protocをソースからビルドする必要があり、手間がかかります。
収録されている特集
トピック
よくある質問
- protobuf とは?
- Googleが提供する、構造化データのシリアライズに使える言語・プラットフォーム非依存の形式とツールチェーン。protocコンパイラと多言語向けランタイムを備えています。 Protocol Buffers(protobuf)は、プログラミング言語やプラットフォームに依存せず、構造化データをシリアライズする仕組みです。開発者は.protoファイルでデータを定義し、protocコンパイラが対象言語でメッセージを読み書きするコードを生成します。
- protobuf は無料で使えますか?ライセンスは?
- protobuf は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- protobuf は今もメンテナンスされていますか?
- 活発にメンテナンス中。protobuf の最終コミットは 2026年11月6日 です。
- protobuf は何に使えますか?
- 異なる言語で実装されたサービス間で共有するデータ契約を定義する。 gRPCスタイルのAPIで、RPCのリクエストとレスポンスのメッセージをシリアライズする。 テキスト形式ではサイズが大きすぎる、または解析に時間がかかりすぎる場合に、コンパクトな構造化レコードを保存する。
- protobuf のインストール方法は?
- GitHubのリリースページからビルド済みのprotocバイナリをダウンロードします 開発者ガイドの入門チュートリアルに従ってください
- protobuf はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/protocolbuffers/protobuf
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
多くのプログラミング言語間で相互運用可能なクライアントとサーバーを生成する、言語非依存のRPCフレームワークです。
LLMのプロンプトに構造化データを渡す際のトークン使用量を抑える、コンパクトで読みやすいJSONデータ向けエンコーディング。
純粋なTypeScript型を、実行時バリデーター、JSONシリアライザー、Protocol Bufferコーデック、ランダムデータ生成器にコンパイルするTypeScriptトランスフォーマー。
SogouのWorkflowエンジンを基盤とするC++ RPCフレームワーク。Linux、macOS、WindowsでSRPC、bRPC、Thrift、tRPCに対応。
バイナリデータを解析・展開せずに直接読み取れる、クロスプラットフォームのシリアライズライブラリです。