BT
x Por favor preencha a pesquisa do InfoQ !

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.

Avalie esse artigo

Relevância
Estilo/Redação

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
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

Percebemos que você está utilizando um bloqueador de propagandas

Nós entendemos porquê utilizar um bloqueador de propagandas. No entanto, nós precisamos da sua ajuda para manter o InfoQ gratuito. O InfoQ não compartilhará seus dados com nenhum terceiro sem que você autorize. Procuramos trabalhar com anúncios de empresas e produtos que sejam relevantes para nossos leitores. Por favor, considere adicionar o InfoQ como uma exceção no seu bloqueador de propagandas.