Protocol Buffers (Protobuf)
Protocol Buffers (Protobuf) est le format de sérialisation binaire neutre en langage de Google pour les données structurées. Il est plus petit, plus rapide et fortement typé par rapport à JSON ou XML, ce qui le rend idéal pour la communication inter-services.
Type MIME
application/x-protobuf
Type
Binaire
Compression
Sans perte
Avantages
- + 10-100x smaller and faster than JSON/XML
- + Schema-driven with generated type-safe code
- + Backward-compatible schema evolution via field numbers
- + Standard wire format for gRPC
Inconvénients
- − Not human-readable — binary format requires tooling
- − Requires .proto schema definition and code generation step
- − Not suitable for human-edited configuration files
Quand utiliser .PROTOBUF
Utilisez Protobuf avec gRPC pour la communication inter-services, les données internes performantes et les API mobiles où la taille de charge est importante. Préférez JSON pour les API publiques et le débogage.
Détails techniques
Protobuf utilise des fichiers .proto avec des numéros de champs et des types pour une sérialisation binaire déterministe. Encodage variable-length (varint) pour les entiers. La compatibilité ascendante/descendante est assurée par les numéros de champs. Le compilateur protoc génère du code typé pour 12+ langages.
Historique
Google a développé Protocol Buffers en interne au début des années 2000 et l'a ouvert en open source en 2008. Proto2 a ajouté les extensions, proto3 (2016) a simplifié la syntaxe. gRPC (2015) a fait de Protobuf le format par défaut pour les microservices modernes.