Memory Efficient Serialization Library
Clone or download
ccifra and aardappel [C#] Fix compile issue when compiling with older versions of C# (#4938)
* C# support for directly reading and writting to memory other than byte[].  For example, ByteBuffer can be initialized with a custom allocator which uses shared memory / memory mapped files.

Public access to the backing buffer uses Span<T> instead of ArraySegment<T>.

Writing to the buffer now supports Span<T> in addition to T[].

To maintain backwards compatibility ENABLE_SPAN_T must be defined.

* Remove usage of expression bodied method so that ByteBuffer can be compiled with older version of C#.
Latest commit ed03faa Sep 20, 2018
Permalink
Failed to load latest commit information.
.github Added PULL_REQUEST_TEMPLATE.md Feb 8, 2017
.travis Change mikeholler to PYPI_USERNAME Dec 13, 2017
CMake Fix a small problem with add_subdirectory(${FLATBUFFERS_DIR}) from to… Jun 1, 2018
android Text files should not have executable bit set (#4480) Nov 6, 2017
conan Conan build packages on CI (#4590) (#4594) Aug 16, 2018
dart Added missing dart/ts test changes. Aug 20, 2018
docs Port FlatBuffers to Rust (#4898) Sep 3, 2018
go Merge pull request #4820 from nairb774/master Jul 26, 2018
grpc Add move semantics to MessageBuilder, FlatBufferBuilder, SliceAllocat… Aug 30, 2018
include/flatbuffers Port FlatBuffers to Rust (#4898) Sep 3, 2018
java/com/google/flatbuffers Add ByteBufferFactory#releaseByteBuffer (#4914) Sep 6, 2018
js Adding JS function to get the File Identifier (#4715) Apr 23, 2018
lobster FlatBuffers implementation for the Lobster programming language Jul 29, 2018
lua Fixed minalign in Lua being reset on StartObject Jul 23, 2018
net/FlatBuffers [C#] Fix compile issue when compiling with older versions of C# (#4938) Sep 20, 2018
php Trimmed vtables of trailing zeroes. Aug 24, 2017
python python: do not clobber minalign when we create objects (#4833) Jul 23, 2018
reflection Include services in reflection data (fixes #4639) (#4713) Apr 27, 2018
rust/flatbuffers fix rust flatbuffers create_vector docs (#4913) Sep 4, 2018
samples Port FlatBuffers to Rust (#4898) Sep 3, 2018
src rust: more builder lifetimes predicates (#4923) Sep 6, 2018
tests Add Rust to Appveyor config. (#4928) Sep 12, 2018
.clang-format Made all C++ files clang-formatted. Dec 21, 2017
.editorconfig added config files for popular formatting tools (#4554) Dec 21, 2017
.gitattributes Text files should not have executable bit set (#4480) Nov 6, 2017
.gitignore delete and ignore Cargo.lock files (#4906) Sep 4, 2018
.travis.yml Conan build packages on CI (#4590) (#4594) Aug 16, 2018
BUILD Port FlatBuffers to Rust (#4898) Sep 3, 2018
CMakeLists.txt Port FlatBuffers to Rust (#4898) Sep 3, 2018
CONTRIBUTING.md Fixed link to Google C++ Style Guide. Feb 9, 2017
LICENSE.txt Fix Visual Studio 2012 build warning. Sep 11, 2015
WORKSPACE Add initial Bazel WORKSPACE and BUILD (#4608) Feb 5, 2018
appveyor.yml Add Rust to Appveyor config. (#4928) Sep 12, 2018
composer.json (PHP) add experimental support for PHP language. Nov 17, 2015
conanfile.py Conan build packages on CI (#4590) (#4594) Aug 16, 2018
package.json Update version number to 1.9 Apr 5, 2018
pom.xml Vector of unions support for java and c# (#4735) May 14, 2018
readme.md readme.md: add Rust as a supported language Sep 4, 2018

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
  • Rust

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.