Format Atlas

Dados

O que é um arquivo .proto?

.proto é um arquivo de esquema que descreve mensagens, campos e tipos do Protocol Buffers. Um compilador como o protoc lê esse arquivo e gera código para as linguagens escolhidas. O .proto não é uma mensagem serializada; normalmente, ele é editado como texto.

.protoEsquema de texto para mensagens do Protocol Buffers

Quando escolher este formato

  • Gerar código para diferentes linguagens com protoc
  • Definir mensagens para RPC e comunicação entre serviços

Quando evitar este formato

  • Armazenar diretamente mensagens já serializadas
  • Alterar um esquema sem conferir os números dos campos e os sistemas que o utilizam

Usos comuns

  • Definir a estrutura de mensagens do Protocol Buffers
  • Compartilhar contratos de dados entre linguagens

Características

  • Declara mensagens e tipos de campo
  • Atribui números de campo usados na representação binária
  • Tem sintaxes como proto2, proto3 e editions

Vantagens e desvantagens

Vantagens

  • Uma definição pode gerar código para várias linguagens
  • Tipos e números de campo explícitos ajudam a compartilhar um contrato de dados

Desvantagens

  • Quem consome o esquema precisa de compilador ou biblioteca compatível
  • Alterações precisam seguir as regras de compatibilidade de números e tipos de campo

Abrir e converter

Como abrir

Abra em um editor de texto ou IDE com suporte a Protocol Buffers. Para validar sintaxe e imports, compile com a versão do protoc e as configurações usadas pelo projeto.

Como converter

Ao migrar para outro formato de esquema, mapeie tipos, números de campo, valores padrão, enums e regras de compatibilidade. Depois gere o código e teste dados reais. Trocar a extensão para .json ou para uma extensão binária não converte o arquivo.

Cuidados

  • Não reutilize números de campos existentes. Reserve os números removidos para evitar que sejam usados por engano no futuro.
  • O código gerado pelo esquema e as mensagens serializadas no wire format do Protocol Buffers são coisas diferentes.
  • proto2, proto3 e editions têm diferenças de sintaxe e comportamento dos campos; confira a declaração do arquivo e as versões das ferramentas.

Perguntas frequentes

Um arquivo .proto contém os dados da mensagem?

Não. Ele define o esquema da mensagem. O código gerado e a biblioteca do Protocol Buffers serializam os dados separadamente.

O que pode ser gerado a partir de um .proto?

O protoc e os plugins compatíveis podem gerar código dos tipos de mensagem para as linguagens configuradas.

Formatos relacionados

Comparar

Referências e especificações