Búferes de protocolo


Protocol Buffers ( Protobuf ) es un formato de datos multiplataforma de código abierto y gratuito que se utiliza para serializar datos estructurados. Es útil en el desarrollo de programas para comunicarse entre sí a través de una red o para almacenar datos. El método involucra un lenguaje de descripción de interfaz que describe la estructura de algunos datos y un programa que genera código fuente a partir de esa descripción para generar o analizar un flujo de bytes que representa los datos estructurados.

Google desarrolló Protocol Buffers para uso interno y proporcionó un generador de código para varios idiomas bajo una licencia de código abierto (ver más abajo ).

Los objetivos de diseño de los búferes de protocolo enfatizaron la simplicidad y el rendimiento. En particular, fue diseñado para ser más pequeño y más rápido que XML . [3]

Los búferes de protocolo se utilizan ampliamente en Google para almacenar e intercambiar todo tipo de información estructurada. El método sirve como base para un sistema personalizado de llamada a procedimiento remoto (RPC) que se utiliza para casi todas las comunicaciones entre máquinas en Google. [4]

Los búferes de protocolo son similares a los protocolos Apache Thrift (utilizado por Facebook, Evernote ), Ion (creado por Amazon) o Microsoft Bond, y ofrecen también una pila de protocolos RPC concreta para usar en servicios definidos llamados gRPC . [5]

Las estructuras de datos (llamadas mensajes ) y los servicios se describen en un archivo de definición de proto ( .proto) y se compilan con protoc. Esta compilación genera código que puede ser invocado por un remitente o destinatario de estas estructuras de datos. Por ejemplo, example.pb.ccy example.pb.hse generan a partir de example.proto. Definen clases de C ++ para cada mensaje y servicio en example.proto.