Del byte al campo

decodificador de Protobuf

Revisa primero los bytes wire y añade un .proto independiente solo cuando necesites nombres y tipos declarados.

decodificador de Protobuf

Entrada

Definición .proto opcional

Resultado

Los bytes y el esquema se procesan en este navegador, sin subirlos.

Opciones

Escribe un mensaje wire o varint.

Un decodificador de Protobuf ayuda cuando un registro solo conserva bytes y no la definición del mensaje. Los números de campo, tipos wire y límites exactos siguen siendo observables sin archivo .proto.

El formato wire de protobuf no guarda el nombre original ni aclara si una zona delimitada por longitud contiene texto, bytes, un mensaje anidado o valores compactados. Trata cada lectura como candidata.

¿Por qué usar este decodificador de Protobuf?

La interpretación siempre se puede comparar con los bytes.

Volver del campo a la captura

El decodificador de Protobuf conserva el inicio y fin de cada campo, en offsets desde cero, junto con el tipo wire y el hex original. Una longitud cortada señala el byte problemático.

Un flujo de bytes se divide en campos numerados conectados con sus tramos.

Poner el esquema junto al dato bruto

Pega un .proto independiente y elige el tipo de mensaje. El JSON con nombres aparece junto al árbol wire para que cada valor tipado siga teniendo una referencia comprobable.

El árbol de campos sin nombres se corresponde con otro árbol definido por un esquema.

Tres comprobaciones antes de usar el valor

01

Seleccionar el formato de entrada

Hex viene elegido y admite espacios, dos puntos y prefijos 0x. Cambia a Base64 si así guardaste la captura; una cadena corta puede ser válida en los dos formatos.

02

Separar candidatos de tipos reales

Un varint puede representar uint64, un entero con signo, ZigZag, booleano o enum. El tipo wire 2 puede representar texto o un mensaje. Solo el .proto declara cuál corresponde.

03

Comprobar que el resultado esté vigente

El análisis automático espera 350 ms. Si lo desactivas, Ctrl/Cmd + Enter ejecuta la conversión. Cualquier cambio bloquea de inmediato la copia y la descarga anteriores.

Información verificable del mensaje

Cuatro tipos wire habituales

El decodificador de Protobuf lee varint, fixed64, longitud delimitada y fixed32. Una clave truncada, una longitud imposible o un group antiguo produce un error con posición.

Varint de 64 bits exacto

El modo varint sirve para decodificar uint64 y codificar un decimal. Selecciona ZigZag para sint64; BigInt evita que Number redondee valores grandes.

JSON con nombres del esquema

Con un .proto autónomo puedes escoger el mensaje raíz y revisar campos repetidos o anidados. Un fallo del esquema no borra el árbol wire bruto.

Hex procedente de la entrada

La descarga convierte los bytes originales a hex uniforme. No vuelve a serializar un mensaje inferido, por lo que resulta apta para comparar con el paquete.

Límites de la lectura binaria

Sin esquema no hay nombres originales
Un decodificador de Protobuf sin archivo .proto recupera números y tipos wire, no nombres de campos, etiquetas enum ni pertenencia oneof. No asigna nombres imaginarios.
Que sea UTF-8 no demuestra string
Los mismos bytes pueden parecer texto y también un mensaje anidado. La interfaz ofrece candidatos, no una decisión de tipo para lógica de producción.
Esquema local de un solo archivo
No se resuelven imports ni URL remotas. Prepara una definición autocontenida dentro de tu proyecto antes de pegarla aquí.
Sin marco gRPC ni compresión
El campo acepta un mensaje wire bruto; no retira los cinco bytes de cabecera gRPC ni descomprime. Tampoco codifica un mensaje completo desde JSON.

Preguntas sobre el decodificador de Protobuf

¿Puedo decodificar protobuf sin el archivo .proto?

Sí, puedes ver campos, tipos wire, offsets y valores originales. Los nombres y tipos declarados requieren el .proto que corresponda.

¿Qué significan los tipos de cable de protobuf?

Son los códigos que indican cómo recorrer el siguiente valor: varint, fixed64, longitud delimitada o fixed32. No indican toda la semántica.

¿Debería pegar el protobuf como hex o base64?

Elige Hex para pares de dígitos o Base64 para una cadena de ese formato. La herramienta no adivina automáticamente cuál de los dos es.

¿Por qué un varint se muestra como varios números diferentes?

El mismo varint admite lecturas distintas, por ejemplo uint64 o sint64 con ZigZag. El esquema determina la intención.

¿El payload decodificado se sube a algún lugar?

No. Tanto los bytes como el esquema opcional se analizan dentro de este navegador y no se suben al servidor.

¿Has encontrado una definición que debería admitirse?

Volver al decodificador de Protobuf

Usa el decodificador de Protobuf para contrastar los offsets y el hex original con el .proto correcto antes de dar por válida una interpretación del campo.