Protocol Buffers
Protocol Buffers ist Googles sprachneutrales Binärserialisierungsformat; es erfordert eine .proto-Schemadefinition und ist kompakter und typsicherer als JSON/XML.
Zweck
Stark typisierten, kompakten und effizienten sprachübergreifenden Datenaustausch bieten, wobei Schemata die Kompatibilität garantieren.
Mechanismus
Eine .proto-IDL definiert Nachrichtentypen mit Feldnummern. Bei der Kodierung beginnt jedes Feld mit einem (field_number<<3 | wire_type)-Tag; Ganzzahlen nutzen Varint, Strings und verschachtelte Nachrichten Längenpräfixe. Unbekannte Felder bleiben vorwärtskompatibel. proto3 vereinfacht die Syntax.
Anwendungsfälle
- gRPC-Transportprotokoll
- Interne Datenspeicherung bei Google
- Mobile APIs (Bandbreite sparen)
- Konfiguration und Persistenz
Beispiele
- Eingabe
message User { string name = 1; }OutputBinary encodingRequires protoc compilation
Häufige Fehler
- Changing field numbers breaks compatibility
- Once assigned, numbers must not be reused or changed
Verwandte Begriffe
Avro
Avro ist ein zeilenorientiertes binäres Serialisierungsformat aus dem Hadoop-Ökosystem; sein Schema ist eingebettet oder extern, und es wird für Big-Data-Speicherung und Kafka verwendet. GLOSSAR
JSON
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat auf Basis von JavaScript-Objektliteralen, das Schlüssel-Wert-Paare und Arrays nutzt. GLOSSAR
CBOR
CBOR (Concise Binary Object Representation) ist eine binäre Form von JSON, normiert in RFC 8949, kompakter und mit mehr Datentypen. GLOSSAR