happytails.ai
Português

Verificador de compatibilidade Protobuf

Compare duas versões de um ficheiro .proto e encontre alterações que tornam incompatíveis mensagens já escritas em formato binário ou JSON. Números removidos, alterações de tipos, campos com novos nomes e alterações de enumerações são explicados individualmente.

Aceita dois ficheiros .proto com até 1 000 000 de caracteres cada, no máximo 200 000 tokens, 2 000 mensagens e enumerações, 10 000 campos por mensagem e 32 níveis de mensagens aninhadas. A comparação é executada no seu navegador num processo de trabalho em segundo plano. Transferências: um relatório JSON e uma lista CSV de resultados. A versão com que os dados existentes foram escritos. Coloque o ficheiro alterado em «Novo esquema». Até 1 000 000 de caracteres. Reveja as definições antes de executar.

Seu resultado

Comunica um problema ou partilha uma ideia.

Verificador de compatibilidade Protobuf
  1. Cole o ficheiro .proto antigo no campo principal.
  2. Cole a nova versão no campo «Novo esquema».
  3. Execute a verificação e reveja os resultados, dos mais graves aos menos graves.
  4. Transfira o relatório JSON ou a lista CSV.

O que esperar

Aceita dois ficheiros .proto com até 1 000 000 de caracteres cada, no máximo 200 000 tokens, 2 000 mensagens e enumerações, 10 000 campos por mensagem e 32 níveis de mensagens aninhadas. A comparação é executada no seu navegador num processo de trabalho em segundo plano. Transferências: um relatório JSON e uma lista CSV de resultados.

Níveis de gravidade

Incompatível significa que programas antigos e novos podem interpretar mal mensagens binárias: um campo removido sem reservar o número, um número reutilizado de um intervalo reservado, um tipo com codificação binária diferente, uma mudança entre singular e repetido, uma mensagem ou enumeração removida ou um valor de enumeração renumerado. Incompatível com JSON significa que os dados binários continuam a funcionar, mas o formato JSON ou texto muda, como ao mudar nomes de campos ou valores de enumeração. Os avisos abrangem alterações compatíveis no formato binário que podem truncar ou reinterpretar valores, como int32 para int64 ou deslocações para dentro ou fora de um oneof.

Como é feita a comparação

As mensagens e enumerações são associadas pelo nome sem o pacote, e os campos pelo número, de acordo com as regras de atualização de tipos de mensagem do guia de protobuf. Mensagens e enumerações aninhadas noutras mensagens também são comparadas.

O que não é suportado

O analisador lê ficheiros proto2 e proto3 com mensagens, enumerações, oneof, mapas, tipos aninhados, números e nomes reservados e opções de campo. Os imports são listados, mas não resolvidos; tipos de outros ficheiros são comparados apenas pelo nome. Edições, grupos e extensões são rejeitados. Os serviços são ignorados.

Próximos passos