FlatBuffers est une bibliothèque de sérialisation multiplateforme conçue pour une efficacité de mémoire maximale. Il vous permet d'accéder directement aux données sérialisées sans les analyser/décompresser au préalable, tout en conservant une excellente compatibilité ascendante/ascendante.
Construisez le compilateur pour les flatbuffers ( flatc
)
Utilisez cmake
pour créer les fichiers de build pour votre plateforme puis effectuez la compilation (exemple Linux).
cmake -G "Unix Makefiles"
make -j
Définissez votre schéma flatbuffer ( .fbs
)
Écrivez le schéma pour définir les données que vous souhaitez sérialiser. Voir monster.fbs pour un exemple.
Générez du code pour votre (vos) langue(s)
Utilisez le compilateur flatc
pour prendre votre schéma et générer du code spécifique au langage :
./flatc --cpp --rust monster.fbs
Ce qui génère les fichiers monster_generated.h
et monster_generated.rs
.
Sérialiser les données
Utilisez le code généré, ainsi que FlatBufferBuilder
pour construire votre tampon sérialisé. (exemple C++
)
Transmettre/stocker/enregistrer le tampon
Utilisez votre tampon sérialisé comme vous le souhaitez. Envoyez-le à quelqu'un, enregistrez-le pour plus tard, etc...
Lire les données
Utilisez les accesseurs générés pour lire les données du tampon sérialisé.
Il n'est pas nécessaire qu'il s'agisse de la même langue/version de schéma, FlatBuffers garantit que les données sont lisibles dans toutes les langues et versions de schéma. Voir l'exemple Rust
lisant les données écrites en C++
.
Accédez à notre page de destination pour parcourir notre documentation.
Génération de code et bibliothèques d'exécution pour de nombreux langages populaires.
FlatBuffers ne suit pas le versioning traditionnel de SemVer (voir justification) mais utilise plutôt un format de date de sortie.
flatbuffers
pour toute question concernant FlatBuffers.Pour contribuer à ce projet, voir CONTRIBUER.
Veuillez consulter notre politique de sécurité pour signaler les vulnérabilités.
Flatbuffers est sous licence Apache, version 2.0. Voir LICENCE pour le texte complet de la licence.