BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Google libère FlatBuffers : une Librairie de Sérialisation Efficace, Inter-Plateformes

Google libère FlatBuffers : une Librairie de Sérialisation Efficace, Inter-Plateformes

L'équipe Google "Fun Propulsion Labs" a récemment libéré les sources de FlatBuffers. Construit spécifiquement pour supporter les besoins en performance des développeurs de jeux, FlatBuffers stocke des données sérialisées dans des buffers qui peuvent être soit stockés dans des fichiers ou transférés tels quels sur le réseau, sans coût additionnel de parsing.

Quelques fonctionnalités clés de FlatBuffers :

  • Accès à la donnée sérialisée sans empaquetage/dépaquetage
  • Efficacité mémoire et vitesse - la seule mémoire requise pour accéder aux données est celle du buffer ; 0 mémoire additionnelle requise
  • Flexibilité - compatibilité ascendante et descendante via les champs optionnels
  • Empreinte de code minuscule
    • Fortement Typé - erreurs détectées à la compilation plutôt qu'à l'exécution
    • Pratique - code succint via en-têtes C++ générées. Fonctionnalité optionnelle pour parser des schémas et représentations proches du JSON à l'exécution de manière efficace si besoin (plus rapide et efficace d'un point de vue mémoire que d'autres parsers JSON)

L'avantage de FlatBuffers par rapport à des solutions alternatives comme Protocol Buffers ou du parsing de JSON, c'est qu'il y a moins de coûts additionnels en amont, tout spécialement parce qu'il n'y a pas de parsing.

Utiliser les FlatBuffers en C++ implique les étapes suivantes :

Il existe encore quelques petits points moins bien polis, comme il est visible dans les discussions passées sur le groupe de discussion. Le support pour Java est aussi expérimental pour le moment. Le support C# est l'une des requêtes les plus populaires, et pourrait faire son apparition dans la prochaine release.

Vous pouvez en apprendre plus sur les FlatBuffers en vous référant à la documentation.

Un autre projet qui évite les étapes d'encodage/décodage pour obtenir des bénéfices en performance et qui vaut le coup d'oeil est Cap'n Proto.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT