FlatBuffers: Memory Efficient Serialization Library
Go to file
Khem Raj 28920aff8f Fix build with clang on big-endian targets (#4440)
* flatbuffers: Move EndianSwap template to flatbuffers/base.h

Clang complains
call to function 'EndianSwap' that is neither visible in the template definition nor found by argument-dependent lookup
     return EndianSwap(t);

This seems to be due to limitation of two-phase lookup of dependent names in template definitions

Its not being found using associated namespaces therefore
it has to be made visible at the template definition site as well

Signed-off-by: Khem Raj <raj.khem@gmail.com>

* use __builtin_bswap16 when building with clang

clang pretends to be gcc 4.2.0 and therefore the code does
not use __builtin_bswap16 but tries to synthesize it

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-09-21 08:51:08 -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 Update doc (#4427) 2017-09-07 11:52:58 -07:00
go Trimmed vtables of trailing zeroes. 2017-08-24 09:35:54 -07:00
grpc [C++] Improve flatbuffers + gRPC integration (#4310) 2017-06-07 13:56:49 -07:00
include/flatbuffers Fix build with clang on big-endian targets (#4440) 2017-09-21 08:51:08 -07:00
java/com/google/flatbuffers Trimmed vtables of trailing zeroes. 2017-08-24 09:35:54 -07:00
js Trimmed vtables of trailing zeroes. 2017-08-24 09:35:54 -07:00
net/FlatBuffers Trimmed vtables of trailing zeroes. 2017-08-24 09:35:54 -07:00
php Trimmed vtables of trailing zeroes. 2017-08-24 09:35:54 -07:00
python Trimmed vtables of trailing zeroes. 2017-08-24 09:35:54 -07:00
reflection Added support for structs and strings in unions. 2017-04-12 17:47:47 -07:00
samples Trimmed vtables of trailing zeroes. 2017-08-24 09:35:54 -07:00
src idl_gen_json_schema.cpp: Fixed detection of enum types (#4438) 2017-09-14 09:25:43 -07:00
tests Every type gets additionalProperties set to "false" (#4424) 2017-08-31 08:56:04 -07:00
.gitattributes Initial commit of the FlatBuffers code. 2014-06-10 13:53:28 -07:00
.gitignore Vector of unions for TS/JS and PHP (#4404) 2017-08-11 09:24:36 -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 Disabled numpy test in appveyor due to timeout. 2017-08-24 13:46:46 -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 Forgot to update pom.xml in recent 1.7.1 release. 2017-08-10 11:35:58 -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.