Repolode
protocolbuffers

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. 1

    GitHubのリリースページからビルド済みのprotocバイナリをダウンロードします

  2. 2

    開発者ガイドの入門チュートリアルに従ってください

使う前に知っておきたいこと

  • メタデータではライセンスがNOASSERTIONと記載されているため、ライセンス条項が不明確です。
  • mainブランチの先端は互換性のない変更によって壊れる可能性があるため、安定したビルドにはリリースを固定してください。
  • C++ユーザーやコードの変更が必要な人は、protocをソースからビルドする必要があり、手間がかかります。

収録されている特集

トピック

#serialization#rpc#protocol-compiler#code-generation#cross-language#data-format#marshalling#protobuf#protobuf-runtime#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 の数値は毎日更新されます。

関連プロジェクト

1つの.sk irファイルから、TypeScript、Python、Java、Go、C++など向けの型安全なデータモデルとRPCコードを生成する宣言的スキーマ言語。

317+1 今週10TypeScriptMIT活発にメンテナンス更新 10 日前