Protobufスカラーフィールド型リファレンス
すべてのprotobufスカラー型の完全リファレンス:整数、浮動小数点、ブーリアン、文字列、バイト。ワイヤー型情報と言語固有のマッピングを含みます。
Basic Messages
詳細な説明
すべてのProtobufスカラー型
Protocol Buffersは各ターゲット言語のネイティブ型にマッピングされる15のスカラー型を提供します。適切な型の選択はワイヤーサイズとパフォーマンスの両方に影響します。
syntax = "proto3";
message ScalarShowcase {
// 浮動小数点
double latitude = 1;
float temperature = 2;
// 可変長整数(負の数には非効率)
int32 age = 3;
int64 population = 4;
// 符号なし整数
uint32 count = 5;
uint64 total_bytes = 6;
// 符号付き整数(負の数に効率的)
sint32 offset = 7;
sint64 delta = 8;
// 固定幅整数(値が大きい場合に効率的)
fixed32 ipv4_address = 9;
fixed64 file_size = 10;
sfixed32 adjustment = 11;
sfixed64 precise_offset = 12;
// その他のスカラー
bool enabled = 13;
string label = 14;
bytes payload = 15;
}
型選択ガイド
| ユースケース | 推奨型 |
|---|---|
| 自然数(カウント、ID) | uint32 / uint64 |
| 負になり得る数値 | sint32 / sint64 |
| 大きな正の数値(> 2^28) | fixed32 / fixed64 |
| 浮動小数点演算 | double(推奨)またはfloat |
| バイナリデータ | bytes |
| 自由形式テキスト | string(有効なUTF-8である必要あり) |
ワイヤー型
protobufは内部で5つのワイヤー型を使用します。Varintエンコーディング(ワイヤー型0)はすべての整数型とブーリアンに使用されます。固定幅型(ワイヤー型1と5)はvarintエンコーディングをバイパスします。stringとbytes型は長さ区切りエンコーディング(ワイヤー型2)を使用します。
ユースケース
センサーデータ、テレメトリ、または最適な数値型の選択がシリアライゼーションサイズと解析パフォーマンスに影響するシステム向けのprotobufスキーマ設計。