CoderTools

Herramienta Protocol Buffers

Codificar, decodificar y validar mensajes Protocol Buffers

Esquema Proto

Esquemas de Ejemplo:

Entrada

Analice el esquema y seleccione un tipo de mensaje para generar los campos del formulario

Salida

Documentación de Protocol Buffers

¿Qué es Protocol Buffers?

Protocol Buffers (Protobuf) es un mecanismo extensible, independiente del lenguaje y la plataforma, para serializar datos estructurados, desarrollado por Google. Es más pequeño, más rápido y más simple que XML y JSON para la serialización de datos.

Características Principales

  • Independiente del lenguaje y la plataforma
  • Más pequeño y rápido que XML/JSON
  • Tipado fuerte con definición de esquema
  • Compatibilidad hacia adelante y hacia atrás
  • Generación automática de código
  • Codificación binaria eficiente

Cómo Usar Esta Herramienta

  1. Ingrese su definición de esquema .proto en el editor
  2. Haga clic en Analizar Esquema para validar y analizar
  3. Seleccione el tipo de mensaje deseado
  4. Para codificar: Ingrese datos JSON y haga clic en Codificar
  5. Para decodificar: Ingrese datos binarios y haga clic en Decodificar
  6. Use « Decodificación Cruda » para analizar datos binarios sin esquema

Funcionalidades de la Herramienta

Codificar

Convertir datos JSON a formato binario Protocol Buffers. Soporta entrada por formulario para fácil ingreso de datos con validación de tipos.

Decodificar

Convertir datos binarios Protocol Buffers a formato JSON legible. Soporta formatos de entrada Base64, Hex y Hex estilo C.

Decodificación Cruda

Analizar datos binarios protobuf sin esquema. Útil para depuración, ingeniería inversa o análisis de mensajes desconocidos.

Entrada por Formulario

Interfaz de formulario amigable que genera formularios de entrada basados en su esquema. Soporta mensajes anidados, enumeraciones y campos repetidos.

Referencia de Sintaxis Proto

Protocol Buffers usa una sintaxis simple para definir tipos de mensajes:

syntax = "proto3";

message Person {
    string name = 1;
    int32 id = 2;
    string email = 3;
    
    enum PhoneType {
        MOBILE = 0;
        HOME = 1;
        WORK = 2;
    }
    
    message PhoneNumber {
        string number = 1;
        PhoneType type = 2;
    }
    
    repeated PhoneNumber phones = 4;
}
  • syntax: Especifica la versión de protobuf (proto2 o proto3)
  • message: Define un tipo de mensaje con campos
  • field: Cada campo tiene un tipo, nombre y número único
  • enum: Define tipos de enumeración
  • repeated: Marca un campo como repetido (array/lista)
  • optional: Marca un campo como opcional (proto3)

Tipos Escalares

Protocol Buffers soporta varios tipos escalares:

Tipo Descripción Defecto
int32, int64Enteros con signo (codificación de longitud variable)0
uint32, uint64Enteros sin signo0
sint32, sint64Enteros con signo con codificación ZigZag (eficiente para negativos)0
fixed32, fixed64Enteros sin signo de ancho fijo (4 u 8 bytes)0
sfixed32, sfixed64Enteros con signo de ancho fijo (4 u 8 bytes)0
float, doubleNúmeros de punto flotante (32 o 64 bits)0.0
boolValores booleanos (verdadero/falso)false
stringCadenas de texto codificadas en UTF-8""
bytesDatos binarios arbitrariosempty

Tipos de Cable

Protobuf usa tipos de cable para determinar cómo leer valores de datos binarios:

Tipo de Cable Significado Usado Para
0Varintint32, int64, uint32, uint64, sint32, sint64, bool, enum
164-bitfixed64, sfixed64, double
2Length-delimitedstring, bytes, embedded messages, packed repeated
532-bitfixed32, sfixed32, float

Mejores Prácticas

  • Use sintaxis proto3 para nuevos proyectos - más simple y ampliamente soportado
  • Mantenga los números de campo estables - nunca reutilice o cambie números de campos existentes
  • Use nombres de campo significativos que describan claramente los datos
  • Reserve los números de campo 1-15 para campos frecuentemente usados (usan 1 byte)
  • Use la palabra clave 'repeated' para arrays/listas de valores
  • Defina enumeraciones para campos con un conjunto fijo de valores posibles

Preguntas Frecuentes

¿Qué es Protocol Buffers (Protobuf)?

Protocol Buffers es un mecanismo extensible, neutral en cuanto a lenguaje y plataforma, para serializar datos estructurados. Es similar a JSON, pero más pequeño, más rápido y genera enlaces de lenguaje nativos. Se utiliza ampliamente en microservicios gRPC.

¿Cómo uso esta herramienta Protobuf online?

Primero, pegue su definición de esquema `.proto` en el editor (o cargue un ejemplo). Haga clic en 'Analizar Esquema' y seleccione un tipo de mensaje. Luego puede alternar entre los modos 'Codificar' (JSON → Binario) y 'Decodificar' (Binario → JSON) para procesar sus datos.

¿Qué es la 'Decodificación en Bruto' (Raw Decode)?

La decodificación en bruto le permite inspeccionar un mensaje Protobuf binario incluso si no tiene el archivo `.proto`. Analiza la estructura binaria y muestra los números de campo, tipos de cable y valores, lo cual es muy útil para depurar o realizar ingeniería inversa de paquetes desconocidos.

¿Están seguros mis datos?

Sí. Esta herramienta se ejecuta 100% en su navegador usando JavaScript (protobuf.js). Sus esquemas, datos JSON y datos binarios nunca se envían a nuestros servidores, asegurando la privacidad de su información confidencial.

Casos de Uso Comunes

  • Comunicación entre servicios en microservicios (gRPC)
  • Almacenamiento de datos y caché
  • Archivos de configuración
  • Protocolos de red y API

Referencias

Menú Rápido

Sin herramientas recientes