fbpx
Wikipedia

FlatBuffers

FlatBuffers is a free software library implementing a serialization format similar to Protocol Buffers, Thrift, Apache Avro, SBE, and Cap'n Proto, primarily written by Wouter van Oortmerssen and open-sourced by Google. It supports “zero-copy” deserialization, so that accessing the serialized data does not require first copying it into a separate part of memory. This makes accessing data in these formats much faster than data in formats requiring more extensive processing, such as JSON, CSV, and in many cases Protocol Buffers. Compared to other serialization formats however, the handling of FlatBuffers requires usually more code, and some operations are not possible (like some mutation operations).

FlatBuffers
Original author(s)Wouter van Oortmerssen
Initial releaseJune 17, 2014; 8 years ago (2014-06-17)[1]
Stable release
22.12.06 / December 7, 2022; 54 days ago (2022-12-07)[2]
Repository
  • github.com/google/flatbuffers
Written inC++
Operating systemAndroid, Microsoft Windows, Mac OS X, Linux
Typeserialization format and library, IDL compiler
LicenseApache License 2.0
Websitegoogle.github.io/flatbuffers/ 

The serialized format allows random access to specific data elements (e.g. individual string or integer properties) without parsing all data. Unlike Protocol Buffers, which uses variable length integers, FlatBuffers encodes integers in their native size, which favors performance but leads to longer encoded representations.

FlatBuffers can be used in software written in C++, C#, C, Go, Java, JavaScript, Kotlin, Lobster, Lua, PHP, Python, Rust, Swift, and TypeScript. The schema compiler runs on Android, Microsoft Windows, Mac OS X, and Linux,[3] but games and other programs use FlatBuffers for serialization work on many other operating systems as well, including iOS, Amazon's Fire OS, and Windows Phone.[4]

Van Oortmerssen originally developed FlatBuffers for game development and similar applications.[5][1]

Although FlatBuffers has its own interface definition language to define the data to be serialized with it, it also supports schemas defined in the Protocol Buffers .proto format.[6]

Users

Some notable users of FlatBuffers:

  • Cocos2d-x, the popular free-software 2-D game programming library, uses FlatBuffers to serialize all of its game data.[7]
  • Facebook Android Client uses FlatBuffers for disk storage and communication with Facebook servers. The previously used JSON format was performing poorly.[8]

See also

References

  1. ^ a b Wouter van Oortmerssen (2014-06-17). "FlatBuffers: A Memory-Efficient Serialization Library". Retrieved 2017-06-15.
  2. ^ "Releases - google/flatbuffers". Retrieved 7 December 2022 – via GitHub.
  3. ^ "GitHub — google/flatbuffers: Memory Efficient Serialization Library". GitHub. Retrieved 2020-12-10.
  4. ^ "FlatBuffers for Unity". eXiin. 2015-09-21. Retrieved 2017-06-15. We tested flatbuffers [sic] on all major mobile platforms (iOS, Android, Amazon Os [sic], Windows Phone) we're building on[,] and it works pretty well.
  5. ^ "FlatBuffers Documentation". Retrieved 2017-06-21. FlatBuffers is an efficient cross platform serialization library for C++, C#, C, Go, Java, JavaScript, PHP, and Python. It was originally created at Google for game development and other performance-critical applications.
  6. ^ Kenton Varda (2014-06-17). "Cap'n Proto, FlatBuffers, and SBE". Retrieved 2017-06-15.
  7. ^ http://www.cocos2d-x.org/reference/native-cpp/V3.5/d7/d2d/namespaceflatbuffers.html
  8. ^ George Xie (2015-07-31). "Improving Facebook's performance on Android with FlatBuffers". Retrieved 2017-06-15. Story load time from disk cache is reduced from 35 ms to 4 ms per story. Transient memory allocations are reduced by 75 percent. Cold start time is improved by 10-15 percent. We have reduced storage size by 15 percent.

flatbuffers, this, article, uses, bare, urls, which, uninformative, vulnerable, link, please, consider, converting, them, full, citations, ensure, article, remains, verifiable, maintains, consistent, citation, style, several, templates, tools, available, assis. This article uses bare URLs which are uninformative and vulnerable to link rot Please consider converting them to full citations to ensure the article remains verifiable and maintains a consistent citation style Several templates and tools are available to assist in formatting such as Reflinks documentation reFill documentation and Citation bot documentation September 2022 Learn how and when to remove this template message FlatBuffers is a free software library implementing a serialization format similar to Protocol Buffers Thrift Apache Avro SBE and Cap n Proto primarily written by Wouter van Oortmerssen and open sourced by Google It supports zero copy deserialization so that accessing the serialized data does not require first copying it into a separate part of memory This makes accessing data in these formats much faster than data in formats requiring more extensive processing such as JSON CSV and in many cases Protocol Buffers Compared to other serialization formats however the handling of FlatBuffers requires usually more code and some operations are not possible like some mutation operations FlatBuffersOriginal author s Wouter van OortmerssenInitial releaseJune 17 2014 8 years ago 2014 06 17 1 Stable release22 12 06 December 7 2022 54 days ago 2022 12 07 2 Repositorygithub wbr com wbr google wbr flatbuffersWritten inC Operating systemAndroid Microsoft Windows Mac OS X LinuxTypeserialization format and library IDL compilerLicenseApache License 2 0Websitegoogle wbr github wbr io wbr flatbuffers wbr The serialized format allows random access to specific data elements e g individual string or integer properties without parsing all data Unlike Protocol Buffers which uses variable length integers FlatBuffers encodes integers in their native size which favors performance but leads to longer encoded representations FlatBuffers can be used in software written in C C C Go Java JavaScript Kotlin Lobster Lua PHP Python Rust Swift and TypeScript The schema compiler runs on Android Microsoft Windows Mac OS X and Linux 3 but games and other programs use FlatBuffers for serialization work on many other operating systems as well including iOS Amazon s Fire OS and Windows Phone 4 Van Oortmerssen originally developed FlatBuffers for game development and similar applications 5 1 Although FlatBuffers has its own interface definition language to define the data to be serialized with it it also supports schemas defined in the Protocol Buffers proto format 6 Users EditSome notable users of FlatBuffers Cocos2d x the popular free software 2 D game programming library uses FlatBuffers to serialize all of its game data 7 Facebook Android Client uses FlatBuffers for disk storage and communication with Facebook servers The previously used JSON format was performing poorly 8 See also Edit Free and open source software portalComparison of data serialization formatsReferences Edit a b Wouter van Oortmerssen 2014 06 17 FlatBuffers A Memory Efficient Serialization Library Retrieved 2017 06 15 Releases google flatbuffers Retrieved 7 December 2022 via GitHub GitHub google flatbuffers Memory Efficient Serialization Library GitHub Retrieved 2020 12 10 FlatBuffers for Unity eXiin 2015 09 21 Retrieved 2017 06 15 We tested flatbuffers sic on all major mobile platforms iOS Android Amazon Os sic Windows Phone we re building on and it works pretty well FlatBuffers Documentation Retrieved 2017 06 21 FlatBuffers is an efficient cross platform serialization library for C C C Go Java JavaScript PHP and Python It was originally created at Google for game development and other performance critical applications Kenton Varda 2014 06 17 Cap n Proto FlatBuffers and SBE Retrieved 2017 06 15 http www cocos2d x org reference native cpp V3 5 d7 d2d namespaceflatbuffers html George Xie 2015 07 31 Improving Facebook s performance on Android with FlatBuffers Retrieved 2017 06 15 Story load time from disk cache is reduced from 35 ms to 4 ms per story Transient memory allocations are reduced by 75 percent Cold start time is improved by 10 15 percent We have reduced storage size by 15 percent Retrieved from https en wikipedia org w index php title FlatBuffers amp oldid 1126049330, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.