mirror of https://github.com/vee1e/flatbuffers - FlatBuffers: Memory Efficient Serialization Library
Find a file
Robert Schmidtke 08cf50c54a Java/C#/Python prefixed size support (#4445)
* initial changes to support size prefixed buffers in Java

* add slice equivalent to CSharp ByteBuffer

* resolve TODO for slicing in CSharp code generation

* add newly generated Java and CSharp test sources

* fix typo in comment

* add FinishSizePrefixed methods to CSharp FlatBufferBuilder as well

* add option to allow writing the prefix as well

* generate size-prefixed monster binary as well

* extend JavaTest to test the size prefixed binary as well

* use constants for size prefix length

* fuse common code for getRootAs and getSizePrefixedRootAs

* pulled file identifier out of if

* add FinishSizePrefixed, GetSizePrefixedRootAs support for Python

* Revert "extend JavaTest to test the size prefixed binary as well"

This reverts commit 68be4420dda47e8d0600bb19691f03be71503a68.

* Revert "generate size-prefixed monster binary as well"

This reverts commit 2939516fdf78df4f061c627221e232b312301417.

* fix ByteBuffer.cs Slice() method; add proper CSharp and Java tests

* fix unused parameter

* increment version number

* pulled out generated methods into separate utility class

* pulled out generated methods into separate utility class for Python

* fix indentation

* remove unnecessary comment

* fix newline and copyright

* add ByteBufferUtil to csproj compilation

* hide ByteBuffer's internal data; track offset into parent's array

* test unsafe versions as well; compile and run in debug mode

* clarify help text for size prefix

* move ByteBuffer slicing behavior to subclass

* fix protection levels

* add size prefix support for text generation

* add ByteBufferSlice to csproj compilation

* revert size prefix handling for nested buffers

* use duplicate instead of slice for removing size prefix

* remove slice subclass and use duplicate for removing size prefix

* remove slice specific tests

* remove superfluous command line option
2018-03-12 11:30:46 -07:00
.github
.travis
android
biicode
CMake Support version compatibility checks via find_package command (#4625) 2018-02-15 13:39:15 -08:00
docs Fix the spell mistake (#4599) 2018-01-22 09:08:13 -08:00
go
grpc Misc fixes from internal integration / clang tidy. 2018-02-08 14:58:16 -08:00
include/flatbuffers Remove unnecessary const qualifier from cast (#4666) 2018-03-12 08:22:17 -07:00
java/com/google/flatbuffers Java/C#/Python prefixed size support (#4445) 2018-03-12 11:30:46 -07:00
js
net/FlatBuffers Java/C#/Python prefixed size support (#4445) 2018-03-12 11:30:46 -07:00
php
python Java/C#/Python prefixed size support (#4445) 2018-03-12 11:30:46 -07:00
reflection
samples Add new c++ helpers to ease usage of size prefixed FlatBuffers (#4626) 2018-02-22 09:19:08 -08:00
src Java/C#/Python prefixed size support (#4445) 2018-03-12 11:30:46 -07:00
tests Java/C#/Python prefixed size support (#4445) 2018-03-12 11:30:46 -07:00
.clang-format
.editorconfig
.gitattributes
.gitignore Java/C#/Python prefixed size support (#4445) 2018-03-12 11:30:46 -07:00
.travis.yml #4522 Conan package support (#4590) 2018-01-12 08:18:20 -08:00
appveyor.yml
biicode.conf
BUILD Protobufs: Added '--oneof-union' option. (#4647) 2018-03-05 08:45:25 -08:00
CMakeLists.txt Support version compatibility checks via find_package command (#4625) 2018-02-15 13:39:15 -08:00
composer.json
conanfile.py #4522 Conan package support (#4590) 2018-01-12 08:18:20 -08:00
CONTRIBUTING.md
LICENSE.txt
package.json
pom.xml
readme.md
WORKSPACE Add initial Bazel WORKSPACE and BUILD (#4608) 2018-02-05 10:23:15 -08:00

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.