FlatBuffers: Memory Efficient Serialization Library
Go to file
Christian Helmich 89a68942ac Added support for nested flatbuffers serializing to json (#4391)
* added bool for nested_flatbuffer
setting bool flag nested_flatbuffer according to attributes
setting nested type

* added JSON serialization for nested flatbuffers

* simplified lookup of nested_flatbuffer StructDef

* added nested_flatbuffer parsing workound relying on flexbuffers

* moved nested flatbuffer parsing into its own function for clarity
removed flexbuffers workound to simplify and speed up nested_flatbuffer parsing
added support for 'legacy' nested_flatbuffers, ubyte arrays

* inlined functions for nested parser init/clean since only used once

* whitespace formatting

* changed type of FieldDef.nested_flatbuffer from bool to StructDef*
removed subsequent type lookups

* removed copies of unrequired data when initializing nested parser

* applied changes requested by reviewer

* removed superfluous lookup of nested_flatbuffer field attributes

* renamed camelCased variables to snake_case
2017-07-28 10:27:51 -07:00
.github Added PULL_REQUEST_TEMPLATE.md 2017-02-08 10:15:26 -08:00
CMake Debianization with CPack 2016-08-25 00:00:22 +03:00
android C++98 (stlport) support for core FlatBuffers and FlexBuffers. 2017-07-20 11:01:00 -07:00
biicode Made .sh files all have same comment formatting. 2016-05-23 14:08:21 -07:00
docs Added nested FlexBuffer parsing 2017-06-12 14:34:45 -07:00
go Reword comment so that code editors can mark deprecation correctly (#4147) 2017-01-23 13:40:50 -08:00
grpc [C++] Improve flatbuffers + gRPC integration (#4310) 2017-06-07 13:56:49 -07:00
include/flatbuffers Added support for nested flatbuffers serializing to json (#4391) 2017-07-28 10:27:51 -07:00
java/com/google/flatbuffers Java: Added ByteBufferFactory interface and sizedInputStream method. (#4379) 2017-07-13 08:33:32 -07:00
js Undo PR: make flatbuffers.js into a UMD module (#4228) 2017-04-17 17:31:03 -07:00
net/FlatBuffers Added IFlatbufferObject.cs file to project for .net. 2016-09-19 16:16:15 +09:00
php [PHP] Use mb_detect_encoding when available (#3952) 2016-11-16 09:54:57 -08:00
python Added missing licenses to some sh/cs/py files. 2016-05-23 09:51:41 -07:00
reflection Added support for structs and strings in unions. 2017-04-12 17:47:47 -07:00
samples C++98 (stlport) support for core FlatBuffers and FlexBuffers. 2017-07-20 11:01:00 -07:00
src Added support for nested flatbuffers serializing to json (#4391) 2017-07-28 10:27:51 -07:00
tests Adding accessors for IsBlob and Blob.data (#4398) 2017-07-27 09:06:02 -07:00
.gitattributes Initial commit of the FlatBuffers code. 2014-06-10 13:53:28 -07:00
.gitignore C++98 (stlport) support for core FlatBuffers and FlexBuffers. 2017-07-20 11:01:00 -07:00
.travis.yml C++98 (stlport) support for core FlatBuffers and FlexBuffers. 2017-07-20 11:01:00 -07:00
CMakeLists.txt C++98 (stlport) support for core FlatBuffers and FlexBuffers. 2017-07-20 11:01:00 -07:00
CONTRIBUTING.md Fixed link to Google C++ Style Guide. 2017-02-08 16:37:25 -08:00
LICENSE.txt Fix Visual Studio 2012 build warning. 2015-09-11 14:35:34 -07:00
appveyor.yml Fixed --keep-prefix functionality. 2017-05-24 16:26:57 -07:00
biicode.conf added .travis.yml file (build with original and biicode building); 2015-04-15 13:43:25 -07:00
composer.json (PHP) add experimental support for PHP language. 2015-11-18 00:26:39 +09:00
package.json Updated version numbers to 1.7.0 2017-06-16 16:15:02 -07:00
pom.xml Updated version numbers to 1.7.0 2017-06-16 16:15:02 -07:00
readme.md Update StackOverflow links to have relevant queries. 2017-03-29 11:58:42 -07:00

readme.md

logo FlatBuffers

Join the chat at https://gitter.im/google/flatbuffers Build Status Build status

FlatBuffers is an efficient cross platform serialization library for games and other memory constrained apps. It allows you to directly access serialized data without unpacking/parsing it first, while still having great forwards/backwards compatibility.

Go to our landing page to browse our documentation.

Supported operating systems

  • Android
  • Windows
  • MacOS X
  • Linux

Supported programming languages

  • C++
  • C#
  • C
  • Go
  • Java
  • JavaScript
  • PHP
  • Python

and many more in progress...

Contribution

To contribute to this project, see CONTRIBUTING.

Integration

For applications on Google Play that integrate this tool, usage is tracked. This tracking is done automatically using the embedded version string (flatbuffer_version_string), and helps us continue to optimize it. Aside from consuming a few extra bytes in your application binary, it shouldn't affect your application at all. We use this information to let us know if FlatBuffers is useful and if we should continue to invest in it. Since this is open source, you are free to remove the version string but we would appreciate if you would leave it in.

Licensing

Flatbuffers is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.