Skip to content

Releases: apache/fory

v0.11.1

27 Jun 11:52
Compare
Choose a tag to compare

What's Changed

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

v0.10.1

15 Apr 14:50
b92f928
Compare
Choose a tag to compare

What's Changed

  • fix(java): fix read null chunk out of bound by @chaokunyang in #2065
  • fix(java): Fix error with MemoryBuffer::readBytesAsInt64 when not in LITTLE_ENDIAN mode by @LouisLou2 in #2069
  • fix(java): fix read primitives error on fill buffer bound by @chaokunyang in #2064
  • perf(java): Optimize Computational Efficiency of MetaStringEncoder::encodeGeneric by @LouisLou2 in #2072
  • fix(java): java.util.Date and its subclasses are mutable by @moooonk in #2076
  • fix(java): fix ImmutableCollections$SubList duplicate registration by @w-yfan in #2074
  • fix(java): Modify some mistake by @Hen1ng in #2086
  • 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
  • fix(java): fix serialization npe of collection with all null elems by @chaokunyang in #2111
  • feat(java): support passed tracking ref meta when building serializers by @chaokunyang in #2113
  • fix(java): fix disallowed.txt check in windows by @chaokunyang in #2128

Full Changelog: v0.10.0...v0.10.1

v0.10.1-rc3

06 Apr 14:50
b92f928
Compare
Choose a tag to compare
v0.10.1-rc3 Pre-release
Pre-release

What's Changed

  • fix(java): fix read null chunk out of bound by @chaokunyang in #2065
  • fix(java): Fix error with MemoryBuffer::readBytesAsInt64 when not in LITTLE_ENDIAN mode by @LouisLou2 in #2069
  • fix(java): fix read primitives error on fill buffer bound by @chaokunyang in #2064
  • perf(java): Optimize Computational Efficiency of MetaStringEncoder::encodeGeneric by @LouisLou2 in #2072
  • fix(java): java.util.Date and its subclasses are mutable by @moooonk in #2076
  • fix(java): fix ImmutableCollections$SubList duplicate registration by @w-yfan in #2074
  • fix(java): Modify some mistake by @Hen1ng in #2086
  • 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
  • fix(java): fix serialization npe of collection with all null elems by @chaokunyang in #2111
  • feat(java): support passed tracking ref meta when building serializers by @chaokunyang in #2113
  • fix(java): fix disallowed.txt check in windows by @chaokunyang in #2128

Full Changelog: v0.10.0...v0.10.1-rc3