mirror of https://github.com/vee1e/flatbuffers - FlatBuffers: Memory Efficient Serialization Library
Find a file
Malthe Borch e47ca7ab40 Use a hash table to index existing vtables (#5314)
* Use a hash table to index existing vtables

This allows for quick deduplication even in situations where there
might be thousands of vtables due to 'combinatoric explosion'.

This fixes issue #5301.

* Refactor 0-offset trimming

* Improve deduplication benchmark

The routine now generates a set of realistic logical layouts and
uses a timer function that randomly picks a layout for each iteration.

The benchmark runs in batches of # of logical layouts = 1, 10, 100, 1000.

(Note that due to alignment, the actual number of vtables is usually slightly
higher.)
2019-05-06 15:00:02 -07:00
.appveyor
.bazelci Don't test on Ubuntu 14.04 (#5302) 2019-04-24 10:28:35 -07:00
.github
.travis Unify line ending rules in '.editorconfig' and '.gitattributes' (#5231) 2019-03-18 12:47:07 -07:00
android
CMake Add RPM packaging support (#5177) 2019-02-21 20:06:04 +01:00
conan
dart Bumped version to 1.11.0 2019-04-24 11:34:53 -07:00
docs Doc: use correct ref types for flatcc string creation. (#5305) 2019-04-24 10:34:21 -07:00
go
grpc Bumped version to 1.11.0 2019-04-24 11:34:53 -07:00
include/flatbuffers Fix issues with uint64 enums (#5265) 2019-05-02 13:57:58 -07:00
java/com/google/flatbuffers Java: Calculation of vtable and vtable size moved to the __init method. (#5210) 2019-02-25 23:45:29 +01:00
js [Javascript] Remove newly introduced trailing whitespace in flatbuffer.js (#5300) 2019-04-22 11:48:56 -07:00
lobster
lua Lua library: fix vtable reuse. (#5214) 2019-02-25 23:27:42 +01:00
net/FlatBuffers Remove byte* property in ByteBufferAllocator (#5191) 2019-02-21 23:36:55 +01:00
php
python Use a hash table to index existing vtables (#5314) 2019-05-06 15:00:02 -07:00
reflection
rust/flatbuffers Added common rust traits to FlatBufferBuilder (#5307) 2019-04-26 18:40:10 -07:00
samples Struct typetable (#5291) 2019-04-15 11:38:00 -07:00
snap Update snap include path instruction (#5297) 2019-04-18 15:15:21 -07:00
src Fix issues with uint64 enums (#5265) 2019-05-02 13:57:58 -07:00
tests Use a hash table to index existing vtables (#5314) 2019-05-06 15:00:02 -07:00
.clang-format
.editorconfig Unify line ending rules in '.editorconfig' and '.gitattributes' (#5231) 2019-03-18 12:47:07 -07:00
.gitattributes Unify line ending rules in '.editorconfig' and '.gitattributes' (#5231) 2019-03-18 12:47:07 -07:00
.gitignore Add files generated by CMake to git ignore (#5278) 2019-04-05 12:35:40 -07:00
.travis.yml Attempting to make travis not kill the Android build. 2019-02-25 14:10:56 -08:00
appveyor.yml Remove byte* property in ByteBufferAllocator (#5191) 2019-02-21 23:36:55 +01:00
BUILD Add monster_extra files to Bazel cc_test section (#5321) 2019-05-06 12:27:04 -07:00
build_defs.bzl Fix typo in build_defs.bzl (#5320) 2019-05-06 12:10:11 -07:00
CMakeLists.txt Bumped version to 1.11.0 2019-04-24 11:34:53 -07:00
composer.json
conanfile.py
CONTRIBUTING.md
LICENSE.txt
package.json Bumped version to 1.11.0 2019-04-24 11:34:53 -07:00
pom.xml [maven-release-plugin] prepare for next development iteration 2019-04-24 12:09:50 -07:00
readme.md
WORKSPACE Fix bazel build (#5174) 2019-02-14 22:05:46 +01:00

logo FlatBuffers

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

FlatBuffers is a cross platform serialization library architected for maximum memory efficiency. It allows you to directly access serialized data without parsing/unpacking it first, while still having great forwards/backwards compatibility.

Go to our landing page to browse our documentation.

Supported operating systems

  • Windows
  • MacOS X
  • Linux
  • Android
  • And any others with a recent C++ compiler.

Supported programming languages

  • C++
  • C#
  • C
  • Dart
  • Go
  • Java
  • JavaScript
  • Lobster
  • Lua
  • PHP
  • Python
  • Rust
  • TypeScript

and more in progress...

Contribution

To contribute to this project, see CONTRIBUTING.

Licensing

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