BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Google Abre o Código do FlatBuffers: Biblioteca de Serialização Eficiente e Multi-Plataforma

Google Abre o Código do FlatBuffers: Biblioteca de Serialização Eficiente e Multi-Plataforma

A equipe "Fun Propulsion Labs" do Google recentemente abriu o código do FlatBuffers. Construído especialmente para suprir necessidades de performance de desenvolvedores de jogos, o FlatBuffers armazena dados serializados em buffers que podem ser tanto armazenados em arquivo ou transferidos via rede, sem nenhuma sobrecarga de parsing.

Alguns dos principais recursos do FlatBuffers são -

  • Acesso a dados serializados sem empacotamente/desempacotamento;
  • Velocidade e eficiência de memória - apenas o tamanho do buffer é necessário para acessar os dados; Não requer alocação de memória adicional para acessar o buffer;
  • Flexibilidade - compatibilidade entre versões através de campos opcionais
  • Código-fonte gerado é muito pequeno.
  • Fortemente tipado - erros são capturados em tempo de compilação ao invés de em tempo de execução;
  • Conveniência - Código sucinto através da geração de cabeçalhos C++. Funcionalidade opcional para, se necessário, fazer parse de esquemas e representações JSON em tempo de execução de maneira eficientemente (mais veloz e com uso mais eficiente de memória em relação a outros interpretadores JSON);
  • Multi-Plataforma: Escrito em C++ sem dependências fora da STL, portanto pode ser utilizado em qualquer plataforma que possua um compilador C++. Atualmente, o projeto inclui métodos para construir bibliotecas para Android, Linux, Windows e OSX.

A vantagem do FlatBuffers sobre soluções alternativas como Protocol Buffers ou interpretadores JSON, é possuir menor sobrecarga, especialmente devido a ausência de analisadores.

Utilizar o FlatBuffers em C++ envolve os seguintes passos -

  • Crie um arquivo de schema utilizando a DSL especificada;
  • Use o compilador de schema para gerar os arquivos de cabeçalho C++;
  • Inclua em seu programa o arquivo de cabeçalho gerado (é necessário também que arquivo flatbuffers/flatbuffers.h esteja no caminho de seu programa);
  • Leia e escreva dados utilizando a classe FlatBufferBuilder (que constrói o flat buffer binário);

Há ainda algumas limitações, como evidenciado em discussões passadas no grupo de discussão. O suporte à Java é também experimental neste estágio. O suporte à C# é um dos pedidos mais populares, e pode chegar na próximo lançamento.

Você pode aprender mais sobre o FlatBuffers acessando a documentação.

Outro projeto que evita o passo de codificação/decodificação para conseguir vantagens de desempenho e vale a pena ser visto, é o Cap'n Proto.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT