Cole a definição Protocol Buffers para revisar os campos e as assinaturas RPC detectados. O resultado resume a estrutura, sem compilar código cliente.
Funciona localmente no seu navegadorCole uma definição Protocol Buffers e clique em Inspecionar localmente: a página lista o que consegue ler do texto — a linha de sintaxe, o pacote, cada mensagem com seus campos na ordem do arquivo, enums com seus valores, grupos oneof e serviços gRPC com seus métodos, marcando as chamadas em streaming. Para a primeira mensagem do arquivo é montado um exemplo JSON estrutural. Nada é compilado e nada é enviado: sem protoc, sem chamada gRPC, sem ida e volta ao servidor.
O leitor trata texto proto2 e proto3 do mesmo jeito, por padrões, então devolve o que está escrito, não o que o protoc faria com aquilo. Com o painel de rede do navegador aberto, inspecionar uma definição não gera requisição alguma; o resumo, os contadores e a tabela são preenchidos dentro da aba.
Os valores recebem o tipo que o JSON do proto3 usa: um campo string vira "example", int64 e uint64 viram a string "0", bytes vira "base64-data", bool vira true e um campo repeated é um array de um elemento. Um campo map vira um objeto com uma chave de exemplo, e um campo de mensagem é expandido no próprio objeto aninhado.
Um campo de enum assume o primeiro valor declarado naquele enum, então um campo Currency fica "CURRENCY_UNSPECIFIED" em vez de um número. Uma mensagem que referencia a si mesma é cortada em um objeto vazio, o que mantém o exemplo finito, e só a primeira mensagem do arquivo ganha exemplo — coloque o tipo que interessa no começo se quiser vê-lo.
Quando um tipo de campo não está declarado no texto colado — google.protobuf.Timestamp, por exemplo, ou uma mensagem de um import — o exemplo mostra um objeto vazio e o painel acrescenta um aviso como “1 field type(s) come from imported or external definitions”. O nome do tipo continua no resumo e na tabela.
A ferramenta nunca busca o arquivo importado: uma linha import não muda a saída e nenhuma requisição sai da página. Trate o exemplo como esboço estrutural para conferir com o schema real, não como um payload pronto para enviar a um servidor.
Comentários são ignorados, tanto // quanto /* */, e caracteres dentro de um literal de string não são interpretados, então um valor padrão como [default = "{"] é lido corretamente. Uma mensagem aninhada vira um registro próprio com nome pontuado, e a mensagem externa lista apenas os campos declarados diretamente nela.
Algumas linhas ficam de fora de propósito: declarações reserved, faixas extensions, opções de arquivo como option java_package = "com.acme"; e linhas import. Elas não aparecem no resumo, na tabela nem nos contadores — a saída descreve apenas mensagens, enums, campos e RPCs.
Um texto sem declaração de mensagem, enum ou serviço para com “No message, enum or service declaration was found in this .proto text.”, e um bloco não fechado para com o nome do bloco, como “Unclosed message block: User”. Ler por padrões também significa que não há validação no nível do protoc: número de campo duplicado, tag 0 e tag na faixa reservada 19000–19999 são listados sem objeção.
A saída lista tudo o que encontra e por isso cresce com o arquivo: 305 KB com 600 mensagens geraram 12.200 linhas em cerca de um terço de segundo, e 1,5 MB com 3.000 mensagens e 60.200 linhas terminaram em menos de dois segundos no Chrome. Uma linha de enum na tabela mostra os 12 primeiros valores e depois reticências, enquanto o resumo imprime todos.