Protocol Buffers (Protobuf)
Protocol Buffers (Protobuf) es el mecanismo de serialización de datos neutro en lenguaje y plataforma de Google. Define la estructura de datos en archivos .proto y genera código eficiente de serialización/deserialización para múltiples lenguajes de programación.
Tipo MIME
application/x-protobuf
Tipo
Binario
Compresión
Sin pérdida
Ventajas
- + 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
Desventajas
- − Not human-readable — binary format requires tooling
- − Requires .proto schema definition and code generation step
- − Not suitable for human-edited configuration files
Cuándo usar .PROTOBUF
Usa Protobuf para comunicación entre servicios (con gRPC), cuando necesites serialización compacta con contratos de esquema tipado, o en servicios de alto rendimiento donde el tamaño y la velocidad importen.
Detalles técnicos
Protobuf usa codificación binaria con etiquetas de campo (número de campo + tipo de cable). Proto3 soporta tipos escalares, enums, mensajes anidados, oneof, maps y well-known types (Timestamp, Duration, Any). Los archivos .proto se compilan a código específico de cada lenguaje con protoc.
Historia
Google desarrolló Protobuf internamente y lo liberó como código abierto en 2008. Proto2 fue la primera versión pública; Proto3 (2016) simplificó el lenguaje eliminando campos requeridos y añadiendo soporte JSON. Protobuf impulsa gRPC y gran parte de la infraestructura interna de Google.