Skip to content

Releases: apache/fory

v0.11.2

10 Jul 06:45
Compare
Choose a tag to compare

Features

feat(python): Add Python Linux ARM64 support and optimize Bazel installation by @esafak in #2357
feat(java): row encoder array deserialization into List supports lazy access by @stevenschlansker in #2358

Bug Fix

fix(java): fix register class async jit thread safety by @chaokunyang in #2365
fix(java): fix WeakHashMap thread safety by @chaokunyang in #2366
fix(rust): fix rust lint error by @chaokunyang in #2373
fix(java): fix automatic module conflict with maven shaded dependencies by @chaokunyang in #2372

Other Improvements

docs: adding multi-threading clarifications for java serialization by @drse in #2356
docs: fix document markdown lint error by @LiangliangSui in #2360
docs: Update java_serialization_guide.md - Fury - Fory by @apupier in #2362
docs: Update java_serialization_guide.md - fury --> fory by @apupier in #2361
docs: update jdk 24 support in README.md by @chaokunyang in #2368
chore: bump version 0.11.1 by @LiangliangSui in #2369

Full Changelog: v0.11.1...v0.11.2

v0.11.2-rc1

30 Jun 17:14
Compare
Choose a tag to compare
v0.11.2-rc1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.11.1...v0.11.2-rc1

v0.11.1

27 Jun 11:52
Compare
Choose a tag to compare

Highlights

Features

  • feat(java): row encoder supports synthesizing interfaces nested inside of records by @stevenschlansker in #2304
  • feat(java): Support customized serializer for abstract or interface. by @CherishCai in #2311
  • feat(java): row encoder supports custom rewriting values without changing their type by @stevenschlansker in #2305
  • feat(java): support multi-dimensional array field serialization in xlang meta shared mode by @OmCheeLin in #2314
  • feat(python): bump cython to 3.1.1 by @penguin-wwy in #2318
  • feat(java): array row encoder supports set of interface type by @stevenschlansker in #2333
  • feat(java): support maven shade for disallowed.txt by @chaokunyang in #2327
  • perf(java): Improve zone offset deserialization performance by overriding JDK caching by @Cybermaxke in #2336
  • perf(java): update benchmark plot by @chaokunyang in #2342
  • feat(java): store OptionalInt, OptionalLong, OptionalDouble same as nullable values by @stevenschlansker in #2338

Bug Fix

  • fix(java): row encoder interface synthesis handle (Optional) null correctly by @stevenschlansker in #2306
  • fix(java): Use (long, long, byte) key for MetaStringBytes cache to prevent collisions by @LouisLou2 in #2308
  • fix(python): update python benchmark script by @penguin-wwy in #2315
  • fix(java): fix row encoder synthesized interface lazy-decoding of Optional by @stevenschlansker in #2320
  • fix(java): fix row format handling Optional of type with custom codec by @stevenschlansker in #2321
  • fix(java): row encoder array element serializer created too late by @stevenschlansker in #2323
  • fix(python): fix py3.13 ci on windows by @chaokunyang in #2334
  • fix(python): correct compute_string_hash usage in StructHashVisitor.visit_customized by @lzaeh in #2335
  • fix(java): fix register serializer for abstract class by @chaokunyang in #2347
  • fix(java): fix map nested array type serialization codegen by @chaokunyang in #2352

Other Improvements

New Contributors

Full Changelog: v0.11.0...v0.11.1

v0.11.1-rc1

20 Jun 12:15
Compare
Choose a tag to compare
v0.11.1-rc1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.11.0...v0.11.1-rc1

v0.11.0

17 Jun 03:04
cc91f02
Compare
Choose a tag to compare

Highlights

  • Add Dart Serialization support
  • Chunk-based map serialization for Java/Python with performance optimizations and XLang support
  • Cross-language homogeneous collection serialization between Java/Python
  • Refactor XLang type system and serialization for fory go
  • Performance improvements in Python (dict/tuple/list serialization, C-API optimization)
  • Row format evolution with support for Optional, Records, nested beans, and interface synthesis
  • Unify Java and XLang object serialization with cross-language compatibility for enums, time, arrays, and more
  • Renamed Apache Fury to Apache Fory

Breaking Changes

  • Renamed Apache Fury to Apache Fory, this transition impacts all project components including code repositories, maven groupId, jar names, package names, documentation, and communication channels and the source release name (and location), see Rename Announcement for more details.

Features

  • feat(java): ReplaceResolveSerializer deep copy by @zhaommmmomo in #1925
  • perf(python): Enhance the Python benchmark script by @penguin-wwy in #1926
  • perf(python): Improve tuple and list serializer performance by @penguin-wwy in #1933
  • feat(python): Implement collection serialization protocol by @penguin-wwy in #1942
  • perf(python): Pre-allocate size for the dictionary by @penguin-wwy in #1949
  • feat(java): use varint for jdk compatible serializers by @chaokunyang in #1960
  • feat(java): configurable buffer size limit by @theigl in #1963
  • perf(python): Directly access the key-value pairs of a dict by @penguin-wwy in #1970
  • feat(python): Hardcoding metastring into passable parameters by @pandalee99 in #1987
  • feat(java/python): new xlang type system spec implementation by @chaokunyang in #1690
  • feat(c++): Support the UTF-8 to UTF-16 with SIMD by @pandalee99 in #1990
  • feat(python): support latin1/utf16 string encoding in python by @chaokunyang in #1997
  • feat(c++): add simd accelerated c++ ascii/latin1 check funcion by @chaokunyang in #1999
  • perf(python): get object dict for faster field read/write by @chaokunyang in #2003
  • perf(python): optimize bytes buffer creation by @chaokunyang in #2008
  • feat(java): make 4 bytes utf16 size header optional for utf8 encoding by @chaokunyang in #2010
  • feat(ci): support building python on windows by @An-DJ in #1885
  • feat(java): Chunk by chunk predictive map serialization protocol by @Hen1ng in #1722
  • feat(java): support streaming encode/decode to/from buffer for row format by @chaokunyang in #2024
  • feat(c++): Add benchmark for performance evaluation by @pandalee99 in #2023
  • feat(java): new implementation and protocol refine for chunk based map serialization by @chaokunyang in #2025
  • feat(c++): BenchMark will be a Module by @pandalee99 in #2028
  • feat(java): jit support for chunk based map serialization by @chaokunyang in #2027
  • feat(java): Add basicMultiConfigFury dataprovider and add basic map unit test use the dataProvider by @Hen1ng in #2032
  • feat(python): unify type system between python and xlang serialization in pyfury by @chaokunyang in #2034
  • feat(java): deserialize one pojo into another type by @orisgarno in #2012
  • feat(python): chunk based map serialization for python by @chaokunyang in #2038
  • feat(python): add macos pyfury ci by @chaokunyang in #2041
  • feat(python): automatic release pyfury on macos and windows by @chaokunyang in #2045
  • feat(javascript): optimize string serializer by @theweipeng in #2043
  • feat(java): zstd meta compressor by @orisgarno in #2042
  • feat(python): support 3.13 by @penguin-wwy in #2046
  • feat(java): support register type by name in java by @chaokunyang in #2053
  • feat(spec): remove polymorphic from type id by @chaokunyang in #2054
  • feat(java): Add fastpath for collection/map serialize and deserialize by @Hen1ng in #2050
  • perf(python): upgrade pyarrow version to 15.0.0 by @pandalee99 in #2056
  • feat(python): chunk based map serialization in pure python by @pandalee99 in #2037
  • build(bazel): Extracts compile_commands.json by @penguin-wwy in #2059
  • feat(javascript): simplify the definition of object type description by @theweipeng in #2058
  • perf(java): Optimize Computational Efficiency of MetaStringEncoder::encodeGeneric by @LouisLou2 in #2072
  • feat(javascript): Impl xlang by @theweipeng in #2075
  • perf(python): Optimize sequence buffer writing via the c-api by @penguin-wwy in #2078
  • feat(javascript): Speed up string serializer by @theweipeng in #2083
  • feat(java): extra entry in disallowed.txt by @pjfanning in #2098
  • perf(java): Refactor ThreadPoolFury to improve performance by @moooonk in #2092
  • perf(java): Improve performance by using System.arraycopy to copy between byte arrays by @Cybermaxke in #2101
  • feat(java): use sha256 to check disallowed.txt tamper by @chaokunyang in #2102
  • perf(java): Refactor field sorting in StructSerializer to cache transformed field names and avoid redundant computation by @LouisLou2 in #2091
  • feat(java): support passed tracking ref meta when building serializers by @chaokunyang in #2113
  • feat(java): support nested bean in array/collection/map for row format by @chaokunyang in #2116
  • feat(java): support inconsistent registration by name/id by @chaokunyang in #2120
  • feat: xlang map chunk serialization between java/python by @chaokunyang in #2127
  • feat: xlang homogeneous collection serialization between java/python by @chaokunyang in #2130
  • feat(chore): bump version support kotlin by @chaokunyang in #2134
  • feat(dart): Add Fury Dart Support by @LouisLou2 in #2112
  • refactor(java): refactor object serializer for unifying xlang/java serialization in java by @chaokunyang in #2139
  • refactor(java): move methods from object serializer to abstract object serializer by @chaokunyang in #2140
  • feat(java): unify java and xlang object serialization by @chaokunyang in #2146
  • feat(java): support enum/time/array final types in xlang serialization by @chaokunyang in #2164
  • feat(java): FuryField annotation hints for struct serialization by @Hen1ng in #2036
  • feat(kotlin): add kotlin ci by @pandalee99 in #2176
  • perf(kotlin): Add multiple versions of kotlin CI by @pandalee99 in #2184
  • feat(dart): add test_config.yaml and apply TestConfig for environment-specific settings by @LouisLou2 in #2183
  • feat: add Dart to Language enums across all implementations by @LouisLou2 in #2187
  • feat(go): fury go implements new xlang by @pandalee99 in #2198
  • feat(java): add protobuf serializer for message and byte string by @chaokunyang in #2213
  • feat(spec): update type meta encoding by @chaokunyang in #2216
  • feat(java): type meta encoding for xlang in java by @chaokunyang in #2197
  • feat(java): support trackingRef in furyField by @Hen1ng in #2168
  • feat(java): add DescriptorBuilder for easy build and copying Descriptor by @Hen1ng in #2229
  • feat(java): Support furyField nullable in codeGen pattern by @Hen1ng in #2191
  • feat(java): row encoder supports custom types and collections by @stevenschlansker in #2243
  • test(benchmark): add msgpack serialization/deserialization to benchmark by @Kn0688 in #2242
  • feat(go): fury-go implements adaptation and optimization for new xlang by @pandalee99 in #2230
  • perf(c++): Evaluate the implementation effect &&simdutf performs partial vectorization by @pa...
Read more

v0.11.0-rc1

06 Jun 13:21
cc91f02
Compare
Choose a tag to compare
v0.11.0-rc1 Pre-release
Pre-release

Highlights

  • Add Dart Serialization support
  • Chunk-based map serialization for Java/Python with performance optimizations and XLang support
  • Cross-language homogeneous collection serialization between Java/Python
  • Refactor XLang type system and serialization for fory go
  • Performance improvements in Python (dict/tuple/list serialization, C-API optimization)
  • Row format evolution with support for Optional, Records, nested beans, and interface synthesis
  • Unify Java and XLang object serialization with cross-language compatibility for enums, time, arrays, and more
  • Renamed Apache Fury to Apache Fory

Breaking Changes

  • Renamed Apache Fury to Apache Fory, this transition impacts all project components including code repositories, maven groupId, jar names, package names, documentation, and communication channels and the source release name (and location), see Rename Announcement for more details.

Features

  • feat(java): ReplaceResolveSerializer deep copy by @zhaommmmomo in #1925
  • perf(python): Enhance the Python benchmark script by @penguin-wwy in #1926
  • perf(python): Improve tuple and list serializer performance by @penguin-wwy in #1933
  • feat(python): Implement collection serialization protocol by @penguin-wwy in #1942
  • perf(python): Pre-allocate size for the dictionary by @penguin-wwy in #1949
  • feat(java): use varint for jdk compatible serializers by @chaokunyang in #1960
  • feat(java): configurable buffer size limit by @theigl in #1963
  • perf(python): Directly access the key-value pairs of a dict by @penguin-wwy in #1970
  • feat(python): Hardcoding metastring into passable parameters by @pandalee99 in #1987
  • feat(java/python): new xlang type system spec implementation by @chaokunyang in #1690
  • feat(c++): Support the UTF-8 to UTF-16 with SIMD by @pandalee99 in #1990
  • feat(python): support latin1/utf16 string encoding in python by @chaokunyang in #1997
  • feat(c++): add simd accelerated c++ ascii/latin1 check funcion by @chaokunyang in #1999
  • perf(python): get object dict for faster field read/write by @chaokunyang in #2003
  • perf(python): optimize bytes buffer creation by @chaokunyang in #2008
  • feat(java): make 4 bytes utf16 size header optional for utf8 encoding by @chaokunyang in #2010
  • feat(ci): support building python on windows by @An-DJ in #1885
  • feat(java): Chunk by chunk predictive map serialization protocol by @Hen1ng in #1722
  • feat(java): support streaming encode/decode to/from buffer for row format by @chaokunyang in #2024
  • feat(c++): Add benchmark for performance evaluation by @pandalee99 in #2023
  • feat(java): new implementation and protocol refine for chunk based map serialization by @chaokunyang in #2025
  • feat(c++): BenchMark will be a Module by @pandalee99 in #2028
  • feat(java): jit support for chunk based map serialization by @chaokunyang in #2027
  • feat(java): Add basicMultiConfigFury dataprovider and add basic map unit test use the dataProvider by @Hen1ng in #2032
  • feat(python): unify type system between python and xlang serialization in pyfury by @chaokunyang in #2034
  • feat(java): deserialize one pojo into another type by @orisgarno in #2012
  • feat(python): chunk based map serialization for python by @chaokunyang in #2038
  • feat(python): add macos pyfury ci by @chaokunyang in #2041
  • feat(python): automatic release pyfury on macos and windows by @chaokunyang in #2045
  • feat(javascript): optimize string serializer by @theweipeng in #2043
  • feat(java): zstd meta compressor by @orisgarno in #2042
  • feat(python): support 3.13 by @penguin-wwy in #2046
  • feat(java): support register type by name in java by @chaokunyang in #2053
  • feat(spec): remove polymorphic from type id by @chaokunyang in #2054
  • feat(java): Add fastpath for collection/map serialize and deserialize by @Hen1ng in #2050
  • perf(python): upgrade pyarrow version to 15.0.0 by @pandalee99 in #2056
  • feat(python): chunk based map serialization in pure python by @pandalee99 in #2037
  • build(bazel): Extracts compile_commands.json by @penguin-wwy in #2059
  • feat(javascript): simplify the definition of object type description by @theweipeng in #2058
  • perf(java): Optimize Computational Efficiency of MetaStringEncoder::encodeGeneric by @LouisLou2 in #2072
  • feat(javascript): Impl xlang by @theweipeng in #2075
  • perf(python): Optimize sequence buffer writing via the c-api by @penguin-wwy in #2078
  • feat(javascript): Speed up string serializer by @theweipeng in #2083
  • feat(java): extra entry in disallowed.txt by @pjfanning in #2098
  • perf(java): Refactor ThreadPoolFury to improve performance by @moooonk in #2092
  • perf(java): Improve performance by using System.arraycopy to copy between byte arrays by @Cybermaxke in #2101
  • feat(java): use sha256 to check disallowed.txt tamper by @chaokunyang in #2102
  • perf(java): Refactor field sorting in StructSerializer to cache transformed field names and avoid redundant computation by @LouisLou2 in #2091
  • feat(java): support passed tracking ref meta when building serializers by @chaokunyang in #2113
  • feat(java): support nested bean in array/collection/map for row format by @chaokunyang in #2116
  • feat(java): support inconsistent registration by name/id by @chaokunyang in #2120
  • feat: xlang map chunk serialization between java/python by @chaokunyang in #2127
  • feat: xlang homogeneous collection serialization between java/python by @chaokunyang in #2130
  • feat(chore): bump version support kotlin by @chaokunyang in #2134
  • feat(dart): Add Fury Dart Support by @LouisLou2 in #2112
  • refactor(java): refactor object serializer for unifying xlang/java serialization in java by @chaokunyang in #2139
  • refactor(java): move methods from object serializer to abstract object serializer by @chaokunyang in #2140
  • feat(java): unify java and xlang object serialization by @chaokunyang in #2146
  • feat(java): support enum/time/array final types in xlang serialization by @chaokunyang in #2164
  • feat(java): FuryField annotation hints for struct serialization by @Hen1ng in #2036
  • feat(kotlin): add kotlin ci by @pandalee99 in #2176
  • perf(kotlin): Add multiple versions of kotlin CI by @pandalee99 in #2184
  • feat(dart): add test_config.yaml and apply TestConfig for environment-specific settings by @LouisLou2 in #2183
  • feat: add Dart to Language enums across all implementations by @LouisLou2 in #2187
  • feat(go): fury go implements new xlang by @pandalee99 in #2198
  • feat(java): add protobuf serializer for message and byte string by @chaokunyang in #2213
  • feat(spec): update type meta encoding by @chaokunyang in #2216
  • feat(java): type meta encoding for xlang in java by @chaokunyang in #2197
  • feat(java): support trackingRef in furyField by @Hen1ng in #2168
  • feat(java): add DescriptorBuilder for easy build and copying Descriptor by @Hen1ng in #2229
  • feat(java): Support furyField nullable in codeGen pattern by @Hen1ng in #2191
  • feat(java): row encoder supports custom types and collections by @stevenschlansker in #2243
  • test(benchmark): add msgpack serialization/deserialization to benchmark by @Kn0688 in #2242
  • feat(go): fury-go implements adaptation and optimization for new xlang by @pandalee99 in #2230
  • perf(c++): Evaluate the implementation effect &&simdutf performs partial vectorization by @pa...
Read more

v0.10.3

27 May 03:30
a48e903
Compare
Choose a tag to compare

What's Changed

Breaking Changes

  • Class with super classes in Java/Scala/Kotlin serialized using fury(<0.10.3) with CompatibleMode is not binary compatible with this version to fix the missing fields, see more details in #2214

Full Changelog: v0.10.2...v0.10.3-rc2

v0.10.3-rc2

15 May 15:52
a48e903
Compare
Choose a tag to compare
v0.10.3-rc2 Pre-release
Pre-release

What's Changed

Full Changelog: v0.10.2...v0.10.3-rc2

v0.10.3-rc1

12 May 15:18
Compare
Choose a tag to compare
v0.10.3-rc1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.10.2...v0.10.3-rc1

v0.10.2

07 May 02:28
fb24fcc
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.10.1...v0.10.2