Flatcc Versions Save

FlatBuffers Compiler and Library in C for C

v0.6.1

1 year ago

Release 0.6.1 contains primarily bug fixes and numerous contributions from the community to handle platform edge cases. Additionally, pendantic GCC warnings are disabled, relying instead on clang, since GCC is too aggressive, breaks builds frequently and works against portability. An existing C++ test case ensures that C code also works with common C++ compilers, but it can break some environments, so there is now a flag to disable that test without disabling all tests. Support for Optional Scalar Values in the FlatBuffer format has been added. There is also improved support for abstracting memory allocation on various platforms. <table>_identifier has been deprecated in favor of <table>_file_identifier in generated code due to identifier easily leading to name conflicts. file_extension constant in generated code is now without prefixed dot (.).

v0.6.0

4 years ago

Primarily introduces fixed size arrays in structs and a primary attribute for sorting buffers recursively:

Release 0.6.0 introduces a "primary" attribute to be used together with a key attribute to chose default key for finding and sorting. If primary is absent, the key with the lowest id becomes primary. Tables and vectors can now be sorted recursively on primary keys. BREAKING: previously the first listed, not the lowest id, would be the primary key. Also introduces fixed size scalar arrays in struct fields (struct and enum elements are not supported). Structs support fixed size array fields, including char arrays. Empty structs never fully worked and are no longer supported, they are also no longer supported by flatc. NOTE: char arrays are not currently part of Googles flatc compiler - int8 arrays may be used instead. BREAKING: empty structs are no longer supported - they are also not valid in Googles flatc compiler. See CHANGELOG for additional changes. DEPRECATED: low-level cast_to/from from functions in flatcc_accessors.h will be removed in favor of read/write_from/to because the cast interface breaks float conversion on some uncommon platforms. This should not affect normal use but remains valid in this release.

v0.5.3

5 years ago

Release 0.5.3 includes various bug fixes (see changelog) and one breaking but likely low impact change: BREAKING: 0.5.3 changes behavour of builder create calls so arguments are always ordered by field id when id attributes are being used, for example MyGame_Example_Monster_create() in monster_test.fbs (#81). Fixes undefined behavior when sorting tables by a numeric key field.

v0.5.2

5 years ago

Release 0.5.2 introduces optional _get suffix to reader methods. By using flatcc -g only _get methods are valid. This removes potential name conficts for some field names. 0.5.2 also introduces the long awaited clone operation for tables and vectors. A C++ smoketest was added to reduce the number void pointer assignment errors that kept sneaking in. The runtime library now needs an extra file refmap.c.

v0.5.1

6 years ago

Release 0.5.1 fixes a buffer overrun in the JSON printer and improves the portable libraries <stdalign.h> compatibility with C++ and the embedded newlib standard library. JSON printing and parsing has been made more consistent to help parse and print tables other than the schema root as seen in the test driver in test_json.c. The monster_test.fbs file has been reorganized to keep the Monster table more consistent with Googles flatc version and a minor schema namespace inconsistency has been resolved as a result. Explicit references to portable headers have been moved out of generated source. extern "C" C++ guards added around generated headers. 0.5.1 also cleaned up the low-level union interface so the terms { type, value } are used consistently over { type, member } and { types, members }.

v0.5.0

6 years ago

Release 0.5.0 aims to reach feature parity with C++ FlatBuffers as of end 2017. These new features are union vectors and mixed type unions that can include tables, structs and strings, and type aliases for int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, float64 types in the schema. Support for base64(url) JSON encoded [ubyte] vectors has been added which will also be added to Googles flatc tool in a future release. In addition the following changes have been added: Runtime builder library support for aligned_alloc/free. Handling of unions is slightly incompatible with previous releases as covered in the documentation and the changelog. v0.5.0 fixes a bug that could cause a JSON parser to reject some valid symbols for some schemas and also fixes a non-critical JSON scoping issue with symbolic union names and a bug verifying buffers with a struct as root. Low-level custom frame support has been improved in the builder library which is useful for complex parsing scenarios.

v0.4.3

6 years ago

flatcc 0.4.3 is a bug fix release covering nested FlatBuffers, JSON and grisu3 numeric errors, special cases for JSON keyword parsing, improved C++ compatibility, flexible configuration of malloc alternatives.

v0.4.2

7 years ago

Important bug fix release: Fixes memory corruption when building with a nesting level of 8 or above.

Also improves C++ compatibility with portable headers and a GCC aligned_alloc issue with older GCC versions, and a minor memory leak in the the flatcc compiler without impact on runtime.

v0.4.1

7 years ago

This release improves the JSON tests and fixes some bugs found in this context.

A new scan operation is added to the generated reader so all vectors can be searched in O(n) without being sorted.

v0.4.0

7 years ago