FlatBuffers: Memory Efficient Serialization Library
Go to file
Romain Gilles 9875b0e0f8 Create a maven like project structure for java development. Make it OSGi compliant. Generate the flatbuffers code for testing (example).
Java developer are mostly comfortable with maven project structure. One one the main concept behind maven is convention. If you follow the maven project convention then your development team will get more effective as they now this project structure and can easily find the production code versus the test code.
 In this pull request I have structured the java project around 2 main parts:
  * the `flatbuffers` project. This project is the api / lib project and contains the test code structure + an example of code generation for testing. This avoid to commit generated code. Pre-configure JUnit for test driven development and make this project OSGi compliant.
  * the `jmh` project. This project aims to provide a placeholder for micro-benchmarking. JMH is a 'de facto' standard for micro benchmarking you can find more details here: http://openjdk.java.net/projects/code-tools/jmh/

For now I didn't move the JavaTest class but it could be a next step with a migration to the JUnit framework.
The only impacts are the move of the class and the project structure => no code change.
2016-06-07 09:05:56 +02:00
CMake flatbuffers/cmake: move build_flatbuffers to a standalone file 2015-11-17 13:52:41 -08:00
android Made .sh files all have same comment formatting. 2016-05-23 14:08:21 -07:00
biicode Made .sh files all have same comment formatting. 2016-05-23 14:08:21 -07:00
build_ide Added missing util.cpp to VS project 2016-04-04 17:09:07 -07:00
docs Fixed Google Groups link in documentation. 2016-05-23 14:08:21 -07:00
go Fix heap allocation when reading a string. 2016-04-23 12:32:43 -07:00
include/flatbuffers Fixed compile errors on Windows 2016-06-02 14:55:35 -07:00
java Create a maven like project structure for java development. Make it OSGi compliant. Generate the flatbuffers code for testing (example). 2016-06-07 09:05:56 +02:00
js Fix #3773: Generated JS now avoids the flatbuffers object 2016-02-25 01:06:16 -08:00
net/FlatBuffers Removed BOM marker from some files. 2016-05-23 12:24:44 -07:00
php Implement __vector_as_bytes and methods to get [ubyte] efficiently 2016-03-29 14:56:09 +11:00
python Added missing licenses to some sh/cs/py files. 2016-05-23 09:51:41 -07:00
reflection Made .sh files all have same comment formatting. 2016-05-23 14:08:21 -07:00
samples sharing the Flatbuffers warning 2016-05-26 15:26:58 +02:00
src Fixed compile errors on Windows 2016-06-02 14:55:35 -07:00
tests sharing the Flatbuffers warning 2016-05-26 15:26:58 +02:00
.gitattributes Initial commit of the FlatBuffers code. 2014-06-10 13:53:28 -07:00
.gitignore Create a maven like project structure for java development. Make it OSGi compliant. Generate the flatbuffers code for testing (example). 2016-06-07 09:05:56 +02:00
.travis.yml Disabled broken biicode builds on Travis for the moment. 2016-02-22 11:33:14 -08:00
CMakeLists.txt Use the build output flatc to compile test schemas by default. 2016-05-01 11:15:53 +08:00
CONTRIBUTING Revamping the FlatBuffers docs. 2016-01-19 14:31:17 -08:00
LICENSE.txt Fix Visual Studio 2012 build warning. 2015-09-11 14:35:34 -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
readme.md Add C support in README, minor updates in other C doc 2016-03-26 09:22:56 +01:00

readme.md

logo FlatBuffers 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.