入力

出力

Protocol Buffers(Protobuf)とは?

Protocol Buffers(Protobuf)は、Googleが開発した言語中立・プラットフォーム中立のデータシリアライゼーション形式です。.protoファイルはメッセージとサービスのスキーマを定義し、gRPC APIで広く使用されています。

Protobufフォーマッターは、インデントの正規化(レベルごとに2スペース)、ブロックの整列修正、末尾の空白の除去を行い、チームが一貫性のある読みやすい.protoスキーマファイルを維持できるようにします。ProtobufスタイルガイドGitHubリポジトリも参照してください。

使い方

1

.protoの内容を貼り付ける

Protocol Bufferスキーマを左側のエディタに貼り付けるか、アップロードをクリックして.protoファイルを読み込みます。

2

即座にフォーマット

フォーマッターがインデント(レベルごとに2スペース)を修正し、messageとserviceのブロック構造を正規化し、末尾の空白を除去します。

3

コピーまたはダウンロード

コピーボタンで結果をコピーするか、ダウンロード.protoファイルとして保存します。

フォーマット例

例: proto3 メッセージ定義をフォーマット

フォーマット前の入力:

syntax="proto3";package api;message User{string name=1;int32 age=2;repeated string roles=3;bool active=4;}

フォーマット後の出力:

syntax = "proto3";
package api;

message User {
  string name = 1;
  int32 age = 2;
  repeated string roles = 3;
  bool active = 4;
}

よくある質問

proto2とproto3の違いは何ですか?

Proto3はより新しく推奨される構文です。required/optionalフィールドルールを廃止し、よりシンプルなデフォルト値を使用し、JSONシリアライゼーションのサポートが向上しています。フォーマッターは両方のバージョンをサポートしています。

gRPCサービス定義にも使用できますか?

はい。gRPCサービス定義はservicerpcブロックを持つ標準的なProtobuf構文を使用しており、フォーマッターで正しく処理されます。

フォーマッターはProtobuf構文を検証しますか?

フォーマッターはインデントとブロック構造を正規化しますが、完全なセマンティック検証は行いません。完全なコンパイルと検証にはprotocを使用してください。

.protoファイルにはどのインデントスタイルが使われますか?

フォーマッターは公式のProtobufスタイルガイドに従い、インデントレベルごとに2スペースを使用します。messageserviceenum内のネストされたブロックはすべて一貫してインデントされます。

関連ツール