1# Flatbuffers Change Log 2 3All major or breaking changes will be documented in this file, as well as any 4new features that should be highlighted. Minor fixes or improvements are not 5necessarily listed. 6 7## [25.1.24] (January 24 2024)(https://github.com/google/flatbuffers/releases/tag/v25.1.24)) 8 9* Mostly related to bazel build support. 10* Min bazel supported is now 7 or higher, as WORKSPACE files are removed (#8509) 11* Minor C++ codegen fix removing extra semicolon (#8488) 12 13## [25.1.21] (January 21 2025)(https://github.com/google/flatbuffers/releases/tag/v25.1.21) 14 15* Rust Full Reflection (#8102) 16* Mostly documentation updates hosted at https://flatbuffers.dev 17 18## [24.3.25] (March 25 2024)(https://github.com/google/flatbuffers/releases/tag/v24.3.25) 19 20* Fixed license metadata parsing (#8253) 21* [C++] Allow string_view in `LookUpByKey` in addition to null-terminated c-style strings (#8203) 22 23## [24.3.7] (March 7 2024)(https://github.com/google/flatbuffers/releases/tag/v24.3.7) 24 25* Just to fix some of the CI build issues from the 24.3.6 release. 26 27## [24.3.6] (March 6 2024)(https://github.com/google/flatbuffers/releases/tag/v24.3.6) 28 29* Fix typescript object API to allow 0 values for null-default scalars (#7864) 30 31## [23.5.26 (May 26 2023)](https://github.com/google/flatbuffers/releases/tag/v23.5.26) 32 33* Mostly bug fixing for 64-bit support 34* Adds support for specifying underling type of unions in C++ and TS/JS (#7954) 35 36## [23.5.9 (May 9 2023)](https://github.com/google/flatbuffers/releases/tag/v23.5.9) 37 38* 64-bit support for C++ (#7935) 39 40## [23.5.8 (May 8 2023)](https://github.com/google/flatbuffers/releases/tag/v23.5.8) 41 42* add key_field to compiled tests 43* Add golden language directory 44* Rework cmake flatc codegeneration (#7938) 45* remove defining generated files in test srcs 46* Add binary schema reflection (#7932) 47* Migrate from rules_nodejs to rules_js/rules_ts (take 2) (#7928) 48* `flat_buffers.dart`: mark const variable finals for internal Dart linters 49* fixed some windows warnings (#7929) 50* inject no long for FBS generation to remove logs in flattests (#7926) 51* Revert "Migrate from rules_nodejs to rules_js/rules_ts (#7923)" (#7927) 52* Migrate from rules_nodejs to rules_js/rules_ts (#7923) 53* Only generate @kotlin.ExperimentalUnsigned annotation on create*Vector methods having an unsigned array type parameter. (#7881) 54* additional check for absl::string_view availability (#7897) 55* Optionally generate Python type annotations (#7858) 56* Replace deprecated command with environment file (#7921) 57* drop glibc from runtime dependencies (#7906) 58* Make JSON supporting advanced union features (#7869) 59* Allow to use functions from `BuildFlatBuffers.cmake` from a flatbuffers installation installed with CMake. (#7912) 60* TS/JS: Use TypeError instead of Error when appropriate (#7910) 61* Go: make generated code more compliant to "go fmt" (#7907) 62* Support file_identifier in Go (#7904) 63* Optionally generate type prefixes and suffixes for python code (#7857) 64* Go: add test for FinishWithFileIdentifier (#7905) 65* Fix go_sample.sh (#7903) 66* [TS/JS] Upgrade dependencies (#7889) 67* Add a FileWriter interface (#7821) 68* TS/JS: Use minvalue from enum if not found (#7888) 69* [CS] Verifier (#7850) 70* README.md: PyPI case typo (#7880) 71* Update go documentation link to point to root module (#7879) 72* use Bool for flatbuffers bool instead of Byte (#7876) 73* fix using null string in vector (#7872) 74* Add `flatbuffers-64` branch to CI for pushes 75* made changes to the rust docs so they would compile. new_with_capacity is deprecated should use with_capacity, get_root_as_monster should be root_as_monster (#7871) 76* Adding comment for code clarification (#7856) 77* ToCamelCase() when kLowerCamel now converts first char to lower. (#7838) 78* Fix help output for --java-checkerframework (#7854) 79* Update filename to README.md and improve formatting (#7855) 80* Update stale.yml 81* Updated remaining usages of LICENSE.txt 82 83## [23.3.3 (Mar 3 2023)](https://github.com/google/flatbuffers/releases/tag/v23.3.3) 84 85* Refactoring of `flatc` generators to use an interface (#7797). 86 87* Removed legacy cmake support and set min to 3.8 (#7801). 88 89## [23.1.21 (Jan 21 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.20) 90 91* Reworked entry points for Typescript/Javascript and compatibility for single 92 file build (#7510) 93 94## [23.1.20 (Jan 20 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.20) 95 96* Removed go.mod files after some versioning issues were being report (#7780). 97 98## [23.1.4 (Jan 4 2023)](https://github.com/google/flatbuffers/releases/tag/v23.1.4) 99 100* Major release! Just kidding, we are continuing the 101 [versioning scheme](https://github.com/google/flatbuffers/wiki/Versioning) of 102 using a date to signify releases. This results in the first release of the new 103 year to bump the tradition major version field. 104 105* Go minimum version is now 1.19 (#7720) with the addition of Go modules. 106 107* Added CI support for Big Endian regression testing (#7707). 108 109* Fixed `getFullyQualifiedName` in typescript to return name delimited by '.' 110 instead of '_' (#7730). 111 112* Fixed the versioning scheme to not include leading zeros which are not 113 consistently handled by every package manager. Only the last release 114 (12.12.06) should have suffered from this. 115 116## [22.12.06 (Dec 06 2022)](https://github.com/google/flatbuffers/releases/tag/v22.12.06) 117 118* Bug fixing release, no major changes. 119 120## [22.10.25 (Oct 25 2022)](https://github.com/google/flatbuffers/releases/tag/v22.10.25) 121 122* Added Nim language support with generator and runtime libraries (#7534). 123 124## [22.9.29 (Sept 29 2022)](https://github.com/google/flatbuffers/releases/tag/v22.9.29) 125 126* Rust soundness fixes to avoid the crate from bing labelled unsafe (#7518). 127 128## [22.9.24 (Sept 24 2022)](https://github.com/google/flatbuffers/releases/tag/v22.9.24) 129 130* 20 Major releases in a row? Nope, we switched to a new 131 [versioning scheme](https://github.com/google/flatbuffers/wiki/Versioning) 132 that is based on date. 133 134* Python supports fixed size arrays now (#7529). 135 136* Behavior change in how C++ object API uses `UnPackTo`. The original intent of 137 this was to reduce allocations by reusing an existing object to pack data 138 into. At some point, this logic started to merge the states of the two objects 139 instead of clearing the state of the packee. This change goes back to the 140 original intention, the packed object is cleared when getting data packed into 141 it (#7527). 142 143* Fixed a bug in C++ alignment that was using `sizeof()` instead of the intended 144 `AlignOf()` for structs (#7520). 145 146* C# has an 147 [official Nuget package](https://www.nuget.org/packages/Google.FlatBuffers) 148 now (#7496). 149 150## 2.0.8 (Aug 29 2022) 151 152* Fix for `--keep-prefix` the was generating the wrong include statements for 153 C++ (#7469). The bug was introduced in 2.0.7. 154 155* Added the `Verifier::Options` option struct to allow specifying runtime 156 configuration settings for the verifier (#7489). This allows to skip verifying 157 nested flatbuffers, a on-by-default change that was introduced in 2.0.7. This 158 deprecates the existing `Verifier` constructor, which may be removed in a 159 future version. 160 161* Refactor of `tests/test.cpp` that lead to ~10% speedup in compilation of the 162 entire project (#7487). 163 164## 2.0.7 (Aug 22 2022) 165 166* This is the first version with an explicit change log, so all the previous 167 features will not be listed. 168 169* Verifier now checks that buffers are at least the minimum size required to be 170 a flatbuffers (12 bytes). This includes nested flatbuffers, which previously 171 could be declared valid at size 0. 172 173* Annotated binaries. Given a flatbuffer binary and a schema (or binary schema) 174 one can generate an annotated flatbuffer (.afb) to describe each byte in the 175 binary with schema metadata and value. 176 177* First binary schema generator (Lua) to generate Lua code via a .bfbs file. 178 This is mostly an implementation detail of flatc internals, but will be slowly 179 applied to the other language generators. 180