- Notifications
You must be signed in to change notification settings - Fork3.5k
FlatBuffers: Memory Efficient Serialization Library
License
google/flatbuffers
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
FlatBuffers is a cross platform serialization library architected formaximum memory efficiency. It allows you to directly access serialized data without parsing/unpacking it first, while still having great forwards/backwards compatibility.
Build the compiler for flatbuffers (
flatc)Use
cmaketo create the build files for your platform and then perform the compilation (Linux example).cmake -G "Unix Makefiles"make -jDefine your flatbuffer schema (
.fbs)Write theschema to define the data you want to serialize. Seemonster.fbs for an example.
Generate code for your language(s)
Use the
flatccompiler to take your schema and generate language-specific code:./flatc --cpp --rust monster.fbsWhich generates
monster_generated.handmonster_generated.rsfiles.Serialize data
Use the generated code, as well as the
FlatBufferBuilderto construct your serialized buffer. (C++example)Transmit/store/save Buffer
Use your serialized buffer however you want. Send it to someone, save it for later, etc...
Read the data
Use the generated accessors to read the data from the serialized buffer.
It doesn't need to be the same language/schema version, FlatBuffers ensures the data is readable across languages and schema versions. See the
Rustexample reading the data written byC++.
Go to ourlanding page to browse our documentation.
- Windows
- macOS
- Linux
- Android
- And any others with a recent C++ compiler (C++ 11 and newer)
Code generation and runtime libraries for many popular languages.
- C
- C++ -snapcraft.io
- C# -nuget.org
- Dart -pub.dev
- Go -go.dev
- Java -Maven
- JavaScript -NPM
- Kotlin
- Lobster
- Lua
- PHP
- Python -PyPI
- Rust -crates.io
- Swift -swiftpackageindex
- TypeScript -NPM
- Nim
FlatBuffers does not follow traditional SemVer versioning (seerationale) but rather uses a format of the date of the release.
- FlatBuffers Issues Tracker to submit an issue.
- stackoverflow.com with
flatbufferstag for any questions regarding FlatBuffers.
To contribute to this project, seeCONTRIBUTING.
Please see ourSecurity Policy for reporting vulnerabilities.
Flatbuffers is licensed under the Apache License, Version 2.0. SeeLICENSE for the full license text.
About
FlatBuffers: Memory Efficient Serialization Library
Topics
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.