BT
x A sua opinião é importante! Por favor preencha a pesquisa do InfoQ sobre os seus hábitos de leitura!

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

por Roopesh Shenoy , traduzido por Marlon Burnett em 31 Jul 2014 |

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.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT