Protocol Buffers
Protocol Buffers est le format de sérialisation binaire indépendant du langage de Google ; il exige un schéma .proto et est plus compact et plus sûr par types que JSON/XML.
Objectif
Fournir un échange de données inter-langages fortement typé, compact et efficace, les schémas garantissant la compatibilité.
Mécanisme
Un IDL .proto définit des types de messages avec numéros de champs. À l'encodage, chaque champ commence par une balise (field_number<<3 | wire_type) ; les entiers utilisent varint, les chaînes et messages imbriqués des préfixes de longueur. Les champs inconnus restent compatibles avec le futur. proto3 simplifie la syntaxe.
Cas d’usage
- Protocole de transport gRPC
- Stockage de données interne chez Google
- APIs mobiles (économie de bande passante)
- Configuration et persistance
Exemples
- entrée
message User { string name = 1; }OutputBinary encodingRequires protoc compilation
Erreurs courantes
- Changing field numbers breaks compatibility
- Once assigned, numbers must not be reused or changed
Termes associés
Avro
Avro est un format de sérialisation binaire orienté lignes issu de l'écosystème Hadoop ; son schéma est intégré ou externe, et il sert au stockage de big data et à Kafka. GLOSSAIRE
JSON
JSON (JavaScript Object Notation) est un format léger d'échange de données fondé sur les littéraux d'objets JavaScript, utilisant paires clé-valeur et tableaux. GLOSSAIRE
CBOR
CBOR (Concise Binary Object Representation) est une forme binaire de JSON, normalisée dans le RFC 8949, plus compacte et prenant en charge davantage de types de données. GLOSSAIRE