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
Comprobador de compatibilidad Protobuf
- Pega el archivo .proto antiguo en el campo principal.
- Pega la nueva versión en el campo «Nuevo esquema».
- Ejecuta la comprobación y revisa los hallazgos, de mayor a menor gravedad.
- 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.