happytails.ai
Español

Comprobador de compatibilidad Protobuf

Compara dos versiones de un archivo .proto y encuentra cambios que rompen mensajes ya escritos en formato binario o JSON. Se explica cada número eliminado, cambio de tipo, campo renombrado y cambio de enumeración.

Admite dos archivos .proto de hasta 1.000.000 de caracteres cada uno, con un máximo de 200.000 tokens, 2.000 mensajes y enumeraciones, 10.000 campos por mensaje y 32 niveles de mensajes anidados. La comparación se ejecuta en tu navegador mediante un trabajador en segundo plano. Descargas: un informe JSON y una lista CSV de hallazgos. La versión con la que se escribieron los datos existentes. Pon el archivo modificado en «Nuevo esquema». Hasta 1 000 000 caracteres. Revisa los ajustes antes de ejecutar.

Tu resultado

Informa de un problema o comparte una idea.

Comprobador de compatibilidad Protobuf
  1. Pega el archivo .proto antiguo en el campo principal.
  2. Pega la nueva versión en el campo «Nuevo esquema».
  3. Ejecuta la comprobación y revisa los hallazgos, de mayor a menor gravedad.
  4. Descarga el informe JSON o la lista CSV.

Qué puedes esperar

Admite dos archivos .proto de hasta 1.000.000 de caracteres cada uno, con un máximo de 200.000 tokens, 2.000 mensajes y enumeraciones, 10.000 campos por mensaje y 32 niveles de mensajes anidados. La comparación se ejecuta en tu navegador mediante un trabajador en segundo plano. Descargas: un informe JSON y una lista CSV de hallazgos.

Niveles de gravedad

Incompatible significa que programas antiguos y nuevos pueden interpretar mal mensajes binarios: un campo eliminado sin reservar su número, un número reutilizado de un intervalo reservado, un tipo con codificación binaria distinta, un cambio entre singular y repetido, un mensaje o enumeración eliminado o un valor de enumeración renumerado. Incompatible con JSON significa que los datos binarios siguen funcionando, pero cambia el formato JSON o de texto, como al renombrar campos o valores de enumeración. Las advertencias cubren cambios compatibles en formato binario que pueden truncar o reinterpretar valores, como int32 a int64 o mover campos dentro o fuera de un oneof.

Cómo se comparan

Los mensajes y enumeraciones se relacionan por su nombre sin el paquete, y los campos por su número, según las reglas de actualización de tipos de mensaje de la guía de protobuf. También se comparan mensajes y enumeraciones anidados dentro de otros mensajes.

Qué no se admite

El analizador lee archivos proto2 y proto3 con mensajes, enumeraciones, oneof, mapas, tipos anidados, números y nombres reservados y opciones de campo. Los imports se enumeran, pero no se resuelven; los tipos de otros archivos solo se comparan por nombre. Se rechazan ediciones, grupos y extensiones. Se omiten los servicios.

Siguientes pasos