Inspeccionar Protobuf y esquemas locales

Protobuf tipos0/1/2/3/4/5 con posiciones y bytes exactos; sin esquema no se adivinan nombres/texto.

  • Funciona en tu navegador
  • Sin subir archivos
  • Revisa antes de descargar

Archivos y esquemas permanecen en esta pestaña y un worker local. Sin cargas ni almacenamiento automático. Borrar/cerrar elimina entradas; conserve originales y resultados.

Protobuf tipos0/1/2/3/4/5 con posiciones y bytes exactos; sin esquema no se adivinan nombres/texto. Gramática local proto2/proto3 con imports locales, escalares/enums/mensajes/grupos, repetidos empaquetados, mapas y oneof. Opcionales ausentes, obligatorios exigidos. Fragmentos de mensaje se fusionan; escalares usan último valor y oneof último miembro activo. Mapas conservan duplicados para inspección, no JSON canónico. Editions/extensiones no admitidas. Sin imports remotos, constructores/códecs generados, eval ni ejecución. Enteros como texto decimal, bytes hex; esto no certifica semántica de aplicaciones. Guarde informes y original; schemas.json conserva esquemas locales. Los fragmentos de mensaje dentro de un valor de mapa se fusionan; las entradas siguen separadas y los escalares usan la última aparición.

Archivo ≤16 MiB; Protobuf ≤1 MiB; esquema ≤256 KiB, total ≤1 MiB. Profundidad64,20.000 nodos,100.000 valores; decodificación32 MiB; salida8 MiB más original. Vista200, exportación10.000 filas. Límite5 segundos. Los64 MiB de SQLite no son toda la memoria del navegador.

Archivo binario local

0 B

Interpretación

Método y límites

Perfil admitido

Protobuf tipos0/1/2/3/4/5 con posiciones y bytes exactos; sin esquema no se adivinan nombres/texto. Gramática local proto2/proto3 con imports locales, escalares/enums/mensajes/grupos, repetidos empaquetados, mapas y oneof. Opcionales ausentes, obligatorios exigidos. Fragmentos de mensaje se fusionan; escalares usan último valor y oneof último miembro activo. Mapas conservan duplicados para inspección, no JSON canónico. Editions/extensiones no admitidas. Sin imports remotos, constructores/códecs generados, eval ni ejecución. Enteros como texto decimal, bytes hex; esto no certifica semántica de aplicaciones. Guarde informes y original; schemas.json conserva esquemas locales. Los fragmentos de mensaje dentro de un valor de mapa se fusionan; las entradas siguen separadas y los escalares usan la última aparición.

Límites de recursos

Archivo ≤16 MiB; Protobuf ≤1 MiB; esquema ≤256 KiB, total ≤1 MiB. Profundidad64,20.000 nodos,100.000 valores; decodificación32 MiB; salida8 MiB más original. Vista200, exportación10.000 filas. Límite5 segundos. Los64 MiB de SQLite no son toda la memoria del navegador.

Archivos y esquemas permanecen en esta pestaña y un worker local. Sin cargas ni almacenamiento automático. Borrar/cerrar elimina entradas; conserve originales y resultados.

Cómo inspeccionar

  1. Archivo binario local

    Carga un mensaje binario. El modo wire no necesita esquema; el modo con esquema requiere archivos .proto locales, el nombre del archivo principal y un tipo de mensaje explícito. Carga el ejemplo para empezar con sample.proto y el mensaje Sample.

  2. Esquema y metadatos

    Los bytes de ejemplo empiezan por 08 96 01 y siguen con un campo delimitado por longitud. Con Sample {int64 id=1; string name=2;} se decodifican como id=150 y name=Café. El modo wire muestra números de campo, rangos de bytes y la carga útil sin procesar en lugar de inventar nombres.

  3. Verificar y guardar exportaciones

    Compara los campos decodificados con los desplazamientos wire y el recuento de campos desconocidos. Guarda report.json, schemas.json si lo has aportado y original.pb. Los enteros son cadenas decimales; los bytes se muestran en hexadecimal, sin suponer que sean texto UTF-8.

Método y límites

¿Por qué difieren los informes del modo wire y del modo con esquema?

El formato wire por sí solo no permite saber si un valor delimitado por longitud es texto, bytes o un submensaje; esa interpretación la aporta el esquema elegido. Los campos opcionales ausentes siguen ausentes, los repetidos conservan todas sus apariciones y en un oneof se toma el último miembro activo. El informe no es JSON Protobuf canónico ni una validación semántica de tu aplicación.

¿Por qué no se puede leer el archivo o la selección?

Usa el nombre completo y exacto del mensaje y aporta las importaciones locales. Son errores los varints truncados, los tipos wire incorrectos, los campos obligatorios ausentes y la falta de esquema. No decodifiques como mensaje sin procesar un envoltorio de aplicación enmarcado o comprimido.

¿Qué no hace este inspector a propósito?

Inspección local de proto2 y proto3; Editions y las extensiones no son compatibles. Hasta 16 archivos de esquema locales, 1 MiB en total, y mensajes de hasta 1 MiB. No se admiten importaciones remotas, código de aplicación generado ni ejecución; las entradas de mapa duplicadas siguen siendo visibles.