Escolha a codificação conscientemente
Hex é o padrão e aceita espaços, dois-pontos e prefixos 0x. Troque para Base64 se esse for o formato da captura; textos curtos podem ser válidos nos dois formatos.
Entenda os bytes do protocolo
Confira primeiro o wire bruto; inclua um .proto autocontido somente quando precisar de nomes e tipos declarados.
Bytes e schema são processados neste navegador, sem upload.
Digite uma mensagem wire ou varint.
Um decodificador Protobuf ajuda quando o log contém uma carga binária sem a definição da mensagem. Mesmo sem schema, você consegue ver número, tipo wire e limites de cada campo.
O formato de fio Protobuf não registra os nomes originais. Um valor delimitado por comprimento pode ser texto, bytes, mensagem aninhada ou números packed; a tela mostra possibilidades até que o .proto defina a interpretação.
A interpretação fica ligada aos bytes originais.
O decodificador Protobuf mostra offsets a partir de zero, tipo wire e hex original em cada campo. Um comprimento truncado aponta o byte em que a leitura falhou.
Cole um .proto independente e escolha o tipo de mensagem. O JSON com nomes aparece ao lado dos campos brutos, permitindo conferir de onde veio cada valor.
Hex é o padrão e aceita espaços, dois-pontos e prefixos 0x. Troque para Base64 se esse for o formato da captura; textos curtos podem ser válidos nos dois formatos.
Um varint pode significar uint64, inteiro com sinal, ZigZag, bool ou enum. Wire 2 pode ser texto, bytes, packed ou mensagem. Só a declaração no .proto resolve a ambiguidade.
A execução automática aguarda 350 ms. Ao desligá-la, use Ctrl/Cmd + Enter. Qualquer mudança desativa copiar e baixar o resultado anterior; o offset final não inclui o próximo byte.
O decodificador Protobuf lê varint, fixed64, comprimento delimitado e fixed32. Chaves cortadas e grupos antigos geram erro no byte correspondente.
Decodifique um varint ou codifique um decimal no sentido inverso. A opção ZigZag interpreta sint64, e BigInt mantém a precisão que Number perderia.
Um schema local autocontido permite escolher o tipo raiz e ler campos repetidos ou aninhados. Se o schema falhar, os campos wire brutos continuam disponíveis.
O download apenas normaliza a escrita dos bytes de entrada. Não recodifica uma mensagem presumida, então serve para comparar com a captura original.
Sim, para estrutura, números de campo, tipos wire, offsets e bytes brutos. Nomes e tipos declarados precisam de um .proto correspondente.
Indicam como pular ou ler o valor seguinte: varint, fixed64, comprimento delimitado e fixed32. Não carregam toda a semântica do campo.
Use Hex para pares de dígitos e Base64 para texto já codificado. A escolha é explícita para evitar uma detecção errada em entradas ambíguas.
A mesma sequência pode significar uint64 ou sint64 em ZigZag. A declaração no schema é que define a leitura correta.
Não. Payload e .proto opcional são processados no seu navegador, sem upload para o servidor.
Encontrou uma definição que deveria ser suportada?
Use o decodificador Protobuf para comparar offsets e hex original com o schema antes de considerar uma leitura de campo definitiva.