Releases: apache/fory
Releases · apache/fory
Release list
v0.10.3-rc2
What's Changed
- chore: cherry-pick commits for 0.10.3 by @chaokunyang in #2219
- chore: cherry-pick commits for 0.10.3 by @chaokunyang in #2234
- chore: Bump version to 0.10.3 by @pandalee99 in #2235
- chore: fix Releases 0.10 by @pandalee99 in #2236
- chore(javascript): remove nodejs 12 support by @chaokunyang in #2233
- fix(java): mark fury-test-core as test dep in fury extensions by @chaokunyang in #2231
- fix(java): ensure readVarUint36Small reads full bits regardless of remaining buffer size by @LouisLou2 in #2179
- fix(java): ensure FuryObjectInputStream.read never returns 0 when length>0 by @X-czh in #2205
- fix(java): Fix empty string processing in MetaStringBytes by @LouisLou2 in #2212
- feat(java): add protobuf serializer for message and byte string by @chaokunyang in #2213
- fix(java): fix field super class missing in compatible mode by @chaokunyang in #2214
- fix: install bazel by @chaokunyang
- fix(python): fix pyfury build using pyproject.toml by @chaokunyang in #2206
- fix: print python tests exception by @chaokunyang
- fix: install pyarrow by @chaokunyang
Full Changelog: v0.10.2...v0.10.3-rc2
v0.10.3-rc1
What's Changed
- chore: cherry-pick commits for 0.10.3 by @chaokunyang in #2219
- fix(ci): fix releases-0.10.3 ci by @pandalee99 in #2221
- fix(java): ensure readVarUint36Small reads full bits regardless of remaining buffer size by @LouisLou2 in #2179
- fix(java): ensure FuryObjectInputStream.read never returns 0 when length>0 by @X-czh in #2205
- fix(java): Fix empty string processing in MetaStringBytes by @LouisLou2 in #2212
- feat(java): add protobuf serializer for message and byte string by @chaokunyang in #2213
- fix(java): fix field super class missing in compatible mode by @chaokunyang in #2214
- fix: install bazel by @chaokunyang
- fix(python): fix pyfury build using pyproject.toml by @chaokunyang in #2206
- fix: print python tests exception by @chaokunyang
- fix: install pyarrow by @chaokunyang
Full Changelog: v0.10.2...v0.10.3-rc1
v0.10.2
What's Changed
- fix(java): fix DisallowedList calculate hash in Windows by @chaokunyang in #2142
- fix(java): fix fury logger log exception by @chaokunyang in #2153
- fix(java): fix nested chunk map serialization error when generics exists by @chaokunyang in #2162
- fix(java): fix nested map chunk serialization codegen by @chaokunyang in #2172
- fix(kotlin): fix kotlin compile error (#2173) by @LiangliangSui in #2188
- feat(kotlin): add kotlin ci by @LiangliangSui in #2176
Full Changelog: v0.10.1...v0.10.2
v0.10.1
What's Changed
- fix(java): fix read null chunk out of bound by @chaokunyang in #2065
- fix(java): Fix error with
MemoryBuffer::readBytesAsInt64when 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
What's Changed
- fix(java): fix read null chunk out of bound by @chaokunyang in #2065
- fix(java): Fix error with
MemoryBuffer::readBytesAsInt64when 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
v0.10.1-rc2
What's Changed
- fix(java): fix read null chunk out of bound by @chaokunyang in #2065
- fix(java): Fix error with
MemoryBuffer::readBytesAsInt64when 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-rc2
v0.10.0-rc1
Highlight
- Chunk based map serialization
- Highly optimized JavaScript string serialization
Features
- feat(java): ReplaceResolveSerializer deep copy by @zhaommmmomo in #1925
- feat(java): use varint for jdk compatible serializers by @chaokunyang in #1960
- feat(java): configurable buffer size limit by @theigl in #1963
- 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(java): new implementation and protocol refine for chunk based map serialization by @chaokunyang in #2025
- 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(java): deserialize one pojo into another type by @orisgarno in #2012
- feat(python): chunk based map serialization for python by @chaokunyang in #2038
- feat(java): zstd meta compressor by @orisgarno in #2042
- feat(python): automatic release pyfury on macos and windows by @chaokunyang in #2045
- feat(javascript): optimize string serializer by @theweipeng in #2043
- feat(python): add macos pyfury ci by @chaokunyang in #2041
Bug Fix
- fix(java): Move schema caching to unsafe trait to avoid issues when using non-inferred schema. by @wywen in #1944
- fix(java): ClassLoaderFuryPooled#setFactoryCallback cannot effect old Fury by @MrChang0 in #1946
- fix(java): fix find constructor error in generated serializer class caused by duplicated class classloading for Fury by @chaokunyang in #1948
- fix(c++): fix bazel install by @chaokunyang in #1979
- fix(java): Fix flakiness in ExpressionVisitorTest#testTraverseExpression by @AmitPr in #1968
- fix(java): Fix the issue caused by not using readCompressedBytesString during deserialization when string compression is enabled. by @Aliothmoon in #1991
- fix(java): Compatible mode on de/serialize api failed to deserialize by @orisgarno in #1996
- fix(java): chunk map serialize an error by @Hen1ng in #2030
- fix(python): Fix missing parameters and old API names by @pandalee99 in #2049
- fix(doc): set compressString default value to false by @chaokunyang in #1913
- fix(java): Remove duplicate maven dependency by @Hen1ng in #2044
- fix(java): fix duplicate entry write at max chunk size bound by @chaokunyang in #2040
Other Improvements
- chore(ci): Migrate the ci from macOS 12 to macOS 13 by @penguin-wwy in #1927
- chore(Rust): fix lint problems by @theweipeng in #1962
- docs(java): add object mapping example and tests by @chaokunyang in #1974
- chore(python): drop py3.7 support by @chaokunyang in #1981
- fix(java): only print warn message if scopedMetaShareEnabled is true … by @zhfeng in #1985
- docs: update copyright date in NOTICE by @caicancai in #2029
- docs(java): update java serialization schema compatibility doc by @chaokunyang in #2047
New Contributors
- @theigl made their first contribution in #1963
- @AmitPr made their first contribution in #1968
- @zhfeng made their first contribution in #1985
- @Hen1ng made their first contribution in #1722
Full Changelog: v0.9.0...v0.10.0-rc1
v0.10.0
Highlight
- Chunk based map serialization
- Highly optimized JavaScript string serialization
Features
- feat(java): ReplaceResolveSerializer deep copy by @zhaommmmomo in #1925
- feat(java): use varint for jdk compatible serializers by @chaokunyang in #1960
- feat(java): configurable buffer size limit by @theigl in #1963
- 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(java): new implementation and protocol refine for chunk based map serialization by @chaokunyang in #2025
- 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(java): deserialize one pojo into another type by @orisgarno in #2012
- feat(python): chunk based map serialization for python by @chaokunyang in #2038
- feat(java): zstd meta compressor by @orisgarno in #2042
- feat(python): automatic release pyfury on macos and windows by @chaokunyang in #2045
- feat(javascript): optimize string serializer by @theweipeng in #2043
- feat(python): add macos pyfury ci by @chaokunyang in #2041
Bug Fix
- fix(java): Move schema caching to unsafe trait to avoid issues when using non-inferred schema. by @wywen in #1944
- fix(java): ClassLoaderFuryPooled#setFactoryCallback cannot effect old Fury by @MrChang0 in #1946
- fix(java): fix find constructor error in generated serializer class caused by duplicated class classloading for Fury by @chaokunyang in #1948
- fix(c++): fix bazel install by @chaokunyang in #1979
- fix(java): Fix flakiness in ExpressionVisitorTest#testTraverseExpression by @AmitPr in #1968
- fix(java): Fix the issue caused by not using readCompressedBytesString during deserialization when string compression is enabled. by @Aliothmoon in #1991
- fix(java): Compatible mode on de/serialize api failed to deserialize by @orisgarno in #1996
- fix(java): chunk map serialize an error by @Hen1ng in #2030
- fix(python): Fix missing parameters and old API names by @pandalee99 in #2049
- fix(doc): set compressString default value to false by @chaokunyang in #1913
- fix(java): Remove duplicate maven dependency by @Hen1ng in #2044
- fix(java): fix duplicate entry write at max chunk size bound by @chaokunyang in #2040
Other Improvements
- chore(ci): Migrate the ci from macOS 12 to macOS 13 by @penguin-wwy in #1927
- chore(Rust): fix lint problems by @theweipeng in #1962
- docs(java): add object mapping example and tests by @chaokunyang in #1974
- chore(python): drop py3.7 support by @chaokunyang in #1981
- fix(java): only print warn message if scopedMetaShareEnabled is true … by @zhfeng in #1985
- docs: update copyright date in NOTICE by @caicancai in #2029
- docs(java): update java serialization schema compatibility doc by @chaokunyang in #2047
New Contributors
- @theigl made their first contribution in #1963
- @AmitPr made their first contribution in #1968
- @zhfeng made their first contribution in #1985
- @Hen1ng made their first contribution in #1722
Full Changelog: v0.9.0...v0.10.0
v0.9.0
Highlight
- Optimized serializers for Fury kotlin support
- Highly-optimized UTF-8 string encoding implementation for Java(2x faster than JDK utf8 encoding)
- Reduce metastring hashcode payload for small string(<=16 bytes)
- Support building C++ libs on windows platform
How to use Fury kotlin
Install:
<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-kotlin</artifactId>
<version>0.9.0</version>
</dependency>Usage:
import org.apache.fury.Fury
import org.apache.fury.ThreadSafeFury
import org.apache.fury.serializer.kotlin.KotlinSerializers
data class Person(val name: String, val id: Long, val github: String)
data class Point(val x : Int, val y : Int, val z : Int)
fun main(args: Array<String>) {
// Note: following fury init code should be executed only once in a global scope instead
// of initializing it everytime when serialization.
val fury: ThreadSafeFury = Fury.builder().requireClassRegistration(true).buildThreadSafeFury()
KotlinSerializers.registerSerializers(fury)
fury.register(Person::class.java)
fury.register(Point::class.java)
val p = Person("Shawn Yang", 1, "https://github.com/chaokunyang")
println(fury.deserialize(fury.serialize(p)))
println(fury.deserialize(fury.serialize(Point(1, 2, 3))))
}Features
- feat(kotlin): Introduce kotlin package with stdlib collections and tests by @wywen in #1877
- feat(kotlin): Add Unsigned Primitive Support by @wywen in #1886
- feat(kotlin): Add unsigned array support and tests for arrays and strings by @wywen in #1891
- feat(java): Refactor String serialization and deserialization by @HuangXingBo in #1890
- feat(java): support thread safe register callback for scala kotlin by @chaokunyang in #1895
- feat(scala): add scala range serializer by @chaokunyang in #1899
- feat(java): add option to treat enum as string by @orisgarno in #1892
- feat(kotlin): Add tests and support for built-in types from the kotlin stdlib by @wywen in #1901
- feat(java): reduce metastring hashcode payload for small string(<=16 bytes) by @chaokunyang in #1909
- feat(javascript): Added serialization and serialization for Type Meta Layer by @Forchapeatl in #1825
- feat(bazel): support building C++ libs on windows platform by @An-DJ in #1873
- feat(scala): support scala native image build by @chaokunyang in #1922
- perf(python): Add python benchmark test by @penguin-wwy in #1916
Bug Fix
- fix(scala): ban these sbt commands by @pjfanning in #1862
- fix(java): fix async compilation switch for non-public nested class by @chaokunyang in #1883
- fix(java): fix add fury thread safety issue by @chaokunyang in #1889
- fix(other): fix feature request template by @chaokunyang in #1898
- fix(java): NonExistentEnum on mode serializeEnumByName by @orisgarno in #1904
- fix(java): ThreadLocalFury and ThreadPoolFury prioritize using the user classloader by @Aliothmoon in #1907
- fix(java): child container deep copy by @zhaommmmomo in #1911
- fix(java): Fix incorrect results of utf16 to utf8 conversion for latin1 but not ascii characters in #1914
- fix(python): Eliminate PytestCollectionWarning when running pytest by @penguin-wwy in #1917
Other Improvements
- chore(py314): Replace deprecated pkgutil.find_loader by @effigies in #1888
- docs(guide): Fix package typo by @mandrean in #1906
- build(kotlin): Add spotless ktfmt and enable explicit api mode for library code. by @wywen in #1912
- build(deps): upgrade scala (2.13.15/3.3.4) by @pjfanning in #1861
- feat(rust): add rust-analyzer to toolchain by @caicancai in #1865
- chore(scala): add scala build script by @chaokunyang in #1920
- chore(kotlin): add parent pom for fury kotlin by @chaokunyang in #1921
- feat(java): Improve error message on architecture not using little-endian format by @apupier in #1918
New Contributors
- @An-DJ made their first contribution in #1873
- @wywen made their first contribution in #1877
- @effigies made their first contribution in #1888
- @HuangXingBo made their first contribution in #1890
- @orisgarno made their first contribution in #1892
- @mandrean made their first contribution in #1906
- @Aliothmoon made their first contribution in #1907
- @penguin-wwy made their first contribution in #1916
- @apupier made their first contribution in #1918
Full Changelog: v0.8.0...v0.9.0
v0.9.0-rc2
Highlight
- Optimized serializers for Fury kotlin support
- Highly-optimized UTF-8 string encoding implementation for Java(2x faster than JDK utf8 encoding)
- Reduce metastring hashcode payload for small string(<=16 bytes)
- Support building C++ libs on windows platform
Features
- feat(kotlin): Introduce kotlin package with stdlib collections and tests by @wywen in #1877
- feat(kotlin): Add Unsigned Primitive Support by @wywen in #1886
- feat(kotlin): Add unsigned array support and tests for arrays and strings by @wywen in #1891
- feat(java): Refactor String serialization and deserialization by @HuangXingBo in #1890
- feat(java): support thread safe register callback for scala kotlin by @chaokunyang in #1895
- feat(scala): add scala range serializer by @chaokunyang in #1899
- feat(java): add option to treat enum as string by @orisgarno in #1892
- feat(kotlin): Add tests and support for built-in types from the kotlin stdlib by @wywen in #1901
- feat(java): reduce metastring hashcode payload for small string(<=16 bytes) by @chaokunyang in #1909
- feat(javascript): Added serialization and serialization for Type Meta Layer by @Forchapeatl in #1825
- feat(bazel): support building C++ libs on windows platform by @An-DJ in #1873
- feat(scala): support scala native image build by @chaokunyang in #1922
- perf(python): Add python benchmark test by @penguin-wwy in #1916
Bug Fix
- fix(scala): ban these sbt commands by @pjfanning in #1862
- fix(java): fix async compilation switch for non-public nested class by @chaokunyang in #1883
- fix(java): fix add fury thread safety issue by @chaokunyang in #1889
- fix(other): fix feature request template by @chaokunyang in #1898
- fix(java): NonExistentEnum on mode serializeEnumByName by @orisgarno in #1904
- fix(java): ThreadLocalFury and ThreadPoolFury prioritize using the user classloader by @Aliothmoon in #1907
- fix(java): child container deep copy by @zhaommmmomo in #1911
- fix(java): Fix incorrect results of utf16 to utf8 conversion for latin1 but not ascii characters in #1914
- fix(python): Eliminate PytestCollectionWarning when running pytest by @penguin-wwy in #1917
Other Improvements
- chore(py314): Replace deprecated pkgutil.find_loader by @effigies in #1888
- docs(guide): Fix package typo by @mandrean in #1906
- build(kotlin): Add spotless ktfmt and enable explicit api mode for library code. by @wywen in #1912
- build(deps): upgrade scala (2.13.15/3.3.4) by @pjfanning in #1861
- feat(rust): add rust-analyzer to toolchain by @caicancai in #1865
- chore(scala): add scala build script by @chaokunyang in #1920
- chore(kotlin): add parent pom for fury kotlin by @chaokunyang in #1921
- feat(java): Improve error message on architecture not using little-endian format by @apupier in #1918
New Contributors
- @An-DJ made their first contribution in #1873
- @wywen made their first contribution in #1877
- @effigies made their first contribution in #1888
- @HuangXingBo made their first contribution in #1890
- @orisgarno made their first contribution in #1892
- @mandrean made their first contribution in #1906
- @Aliothmoon made their first contribution in #1907
- @penguin-wwy made their first contribution in #1916
- @apupier made their first contribution in #1918
Full Changelog: v0.8.0...v0.9.0-rc2