Protocol Buffers
Protocol Buffers es el formato de serialización binaria neutro respecto al lenguaje de Google; requiere un esquema .proto y es más compacto y con más seguridad de tipos que JSON/XML.
Propósito
Ofrecer intercambio de datos entre lenguajes fuertemente tipado, compacto y eficiente, con esquemas que garantizan la compatibilidad.
Mecanismo
Un IDL .proto define tipos de mensaje con números de campo. Al codificar, cada campo empieza con una etiqueta (field_number<<3 | wire_type); los enteros usan varint, y las cadenas y mensajes anidados usan prefijos de longitud. Los campos desconocidos mantienen la compatibilidad futura. proto3 simplifica la sintaxis.
Casos de uso
- Protocolo de transporte de gRPC
- Almacenamiento interno de datos en Google
- APIs móviles (ahorro de ancho de banda)
- Configuración y persistencia
Ejemplos
- entrada
message User { string name = 1; }OutputBinary encodingRequires protoc compilation
Errores comunes
- Changing field numbers breaks compatibility
- Once assigned, numbers must not be reused or changed
Términos relacionados
Avro
Avro es un formato de serialización binaria orientado a filas del ecosistema Hadoop; su esquema puede ir incrustado o ser externo, y se usa para almacenamiento de macrodatos y Kafka. GLOSARIO
JSON
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos basado en los literales de objeto de JavaScript, usando pares clave-valor y arrays. GLOSARIO
CBOR
CBOR (Concise Binary Object Representation) es una forma binaria de JSON, normalizada en el RFC 8949, más compacta y con más tipos de datos. GLOSARIO