Releases: apache/fury
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
v0.9.0-rc1
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
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
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
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
Full Changelog: v0.8.0...v0.9.0-rc1
v0.8.0
HighLights
- Support graalvm 17/21/22 native image
- Release fury optimized serializers for scala
Features
-
refactor(rust): simplify error handle by @jiacai2050 in #1823
-
feat(java): support graalvm 17/21/22 by @chaokunyang in #1845
-
perf(java): inline same element invoke in jit by @chaokunyang in #1851
-
perf(java): optimize read classdef perf by @chaokunyang in #1852
-
feat(scala): optimize scala class serialization by @chaokunyang in #1853
-
feat(java): implement sublist serializers by @chaokunyang in #1856
-
feat(java): use SubListViewSerializer only when tracking ref by @chaokunyang in #1858
Bug Fix
- fix(java): DeserializationException#getMessage call by @yoohaemin in #1830
- fix(java): fix collection view serialization by @chaokunyang in #1833
- fix(java): fix long type name meta string encoding by @chaokunyang in #1837
- fix(java): fix serializer factory getSerializerClass by @chaokunyang in #1836
- fix(rust): replace
(value << 8) | (value >> 8)
withvalue.rotate_right(8)
by @chaokunyang in #1841 - fix(java): Fix for maximum size of java arrays by @fink-arthur in #1843
- fix(java): Fix max Java array size for reader by @fink-arthur in #1844
- fix(java): fix jdk proxy serialization when proxy writeReplace method by @chaokunyang in #1857
Other Improvements
- chore(java): fix default value doc for metaShareEnabled/scopedMetaShareEnabled by @chaokunyang in #1826
- chore(doc): fix 'how to upgrade fury' link in README by @sh-cho in #1846
- build(deps): bump com.google.protobuf:protobuf-java from 3.16.3 to 3.25.5 in /java/benchmark by @dependabot in #1847
- chore(java): simplify generated codec name by @chaokunyang in #1850
- ci: only run sync job if the repo is apache/fury by @pjfanning in #1860
- feat(scala): upgrade sbt and sbt-apache-sonatype by @pjfanning in #1859
New Contributors
- @yoohaemin made their first contribution in #1830
- @fink-arthur made their first contribution in #1843
- @sh-cho made their first contribution in #1846
Full Changelog: v0.7.1...v0.8.0
v0.8.0-rc1
Features
-
refactor(rust): simplify error handle by @jiacai2050 in #1823
-
feat(java): support graalvm 17/21/22 by @chaokunyang in #1845
-
perf(java): inline same element invoke in jit by @chaokunyang in #1851
-
perf(java): optimize read classdef perf by @chaokunyang in #1852
-
feat(scala): optimize scala class serialization by @chaokunyang in #1853
-
feat(java): implement sublist serializers by @chaokunyang in #1856
-
feat(java): use SubListViewSerializer only when tracking ref by @chaokunyang in #1858
Bug Fix
- fix(java): DeserializationException#getMessage call by @yoohaemin in #1830
- fix(java): fix collection view serialization by @chaokunyang in #1833
- fix(java): fix long type name meta string encoding by @chaokunyang in #1837
- fix(java): fix serializer factory getSerializerClass by @chaokunyang in #1836
- fix(rust): replace
(value << 8) | (value >> 8)
withvalue.rotate_right(8)
by @chaokunyang in #1841 - fix(java): Fix for maximum size of java arrays by @fink-arthur in #1843
- fix(java): Fix max Java array size for reader by @fink-arthur in #1844
- fix(java): fix jdk proxy serialization when proxy writeReplace method by @chaokunyang in #1857
Other Improvements
- chore(java): fix default value doc for metaShareEnabled/scopedMetaShareEnabled by @chaokunyang in #1826
- chore(doc): fix 'how to upgrade fury' link in README by @sh-cho in #1846
- build(deps): bump com.google.protobuf:protobuf-java from 3.16.3 to 3.25.5 in /java/benchmark by @dependabot in #1847
- chore(java): simplify generated codec name by @chaokunyang in #1850
- ci: only run sync job if the repo is apache/fury by @pjfanning in #1860
- feat(scala): upgrade sbt and sbt-apache-sonatype by @pjfanning in #1859
New Contributors
- @yoohaemin made their first contribution in #1830
- @fink-arthur made their first contribution in #1843
- @sh-cho made their first contribution in #1846
Full Changelog: v0.7.1...v0.8.0-rc1
v0.7.1
Features
- feat(javascript): Added MetaString Class for Unicode Encoding/Decoding in Type.Object Code Generation by @Forchapeatl in #1774
- feat(Rust): Refine Code Structure & Prepare for Future Compatibility Features by @theweipeng in #1787
- feat(java): ThreadSafeFury add getClassResolver method by @funky-eyes in #1780
- feat(Rust): Implement TypeMeta part of the compatibility features by @theweipeng in #1789
- feat(Rust): Support polymorphism by @theweipeng in #1795
- feat(java): Support copy capabilities for some classes without no-argument constructors by @zhaommmmomo in #1794
- feat(java): support jdk9+ java.util.ImmutableCollections copy by @zhaommmmomo in #1800
- feat(rust): support enum serialization by @jiacai2050 in #1817
- refine fury website and add chinese documents by @yuluo-yx and @LofiSu
Bug Fix
- ci: fix rust ci failed by @LiangliangSui in #1783
- fix(java): fix classloader get npe by @chaokunyang in #1792
- fix(scala): fix nested type serialization in scala object type by @chaokunyang in #1809
- fix(java): Fix replace resolver serializaiton by @chaokunyang in #1812
- fix(java): fix reserved keyword conflict by @chaokunyang in #1819
- fix(java): fix nested map field value serialization by private map serializer by @chaokunyang in #1820
- fix(rust): use iter to avoid reallocate by @jiacai2050 in #1821
Other Improvements
- chore(java): Disallow writing meta classdef when obj is null by @LiangliangSui in #1686
- chore(infra): optimize github tmpl & update actions/checkout version to 4.1.7 by @yuluo-yx in #1807
- chore(infra): remove redundant bug reporting options by @yuluo-yx in #1810
- docs: add check lint ci & fix md lint by @yuluo-yx in #1811
New Contributors
- @Forchapeatl made their first contribution in #1774
- @funky-eyes made their first contribution in #1780
- @yuluo-yx made their first contribution in #1807
Full Changelog: v0.7.0...v0.7.1
v0.7.0
Experimental
Implement fast object deep copy framework for java:
Fury fury = Fury.builder().withRefCopy(true).build();
fury.register(SomeClass.class);
SomeClass a = xxx;
SomeClass copied = fury.copy(a);
Benchmark result:
Benchmark | objectType | Score | Error | Units |
---|---|---|---|---|
fury_copy | MEDIA_CONTENT | 1243297.690 | ± 451828.452 | ops/s |
fury_copy | SAMPLE | 2670545.816 | ± 1378536.021 | ops/s |
fury_copy | STRUCT | 2673356.422 | ± 202288.322 | ops/s |
fury_copy | STRUCT2 | 1943587.774 | ± 392513.707 | ops/s |
fury_copy_int_map | int map | 1470264.733 | ± 1021875.257 | ops/s |
fury_copy_list | List | 3556892.276 | ± 127410.724 | ops/s |
fury_copy_object_array | array | 4430589.112 | ± 25366.893 | ops/s |
fury_copy_string_map | string map | 1736145.327 | ± 377806.877 | ops/s |
kryo_copy | MEDIA_CONTENT | 804208.092 | ± 27429.069 | ops/s |
kryo_copy | SAMPLE | 717669.608 | ± 71093.370 | ops/s |
kryo_copy | STRUCT | 1076048.642 | ± 223194.146 | ops/s |
kryo_copy | STRUCT2 | 141374.767 | ± 14150.535 | ops/s |
kryo_copy_int_map | int map | 546203.187 | ± 54669.173 | ops/s |
kryo_copy_list | List | 843643.496 | ± 312306.921 | ops/s |
kryo_copy_object_array | object array | 1593267.344 | ± 1721824.436 | ops/s |
kryo_copy_string_map | string map | 574809.875 | ± 47316.340 | ops/s |
Features
- feat(Rust): add meta string encoding algorithm in Rust by @urlyy in #1712
- feat(Rust): Implement utf16 to utf8 conversion algorithm by @urlyy in #1730
- perf(java): add struct benchmark with pb by @chaokunyang in #1736
- feat(java): fast object copy framework in fury java by @zhaommmmomo in #1701
- perf(java): optimize pojo copy performance by @chaokunyang in #1739
- feat(java): support jdk17+ record copy by @chaokunyang in #1741
- feat(RUST): String detection is performed using SIMD techniques by @kitty-eu-org in #1752
- feat(java): Add 'Expose' annotation to support "only de/serialize annotated fields" by @urlyy in #1751
- feat(java): support Ignore inconsistent types deserialize by @weijiang157152688 in #1737
- perf(java): optimize map copy perf by @chaokunyang in #1767
- perf(java): optimize list copy perf by @chaokunyang in #1769
- perf(java): optimize object array copy perf by @chaokunyang in #1770
- feat(java): support deep ref copy by @chaokunyang in #1771
Bug Fix
- fix(java): fix janino commons classes issue by @chaokunyang in #1753
- fix(scala): fix scala release version by @chaokunyang in #1756
- fix(java): fix streaming classdef read by @chaokunyang in #1758
- fix(java): fix big buffer streaming MetaShared read offset by @chaokunyang in #1760
- fix(java): fix fury logger npe by @chaokunyang in #1762
- fix(java): fix enum abstract field serialization by @chaokunyang in #1765
- fix(java): Fix memory leak in
StructSerializer.xread()
caused by re-pushing instead of poppingGenericType
. by @komamitsu in #1768
Other Improvements
- chore: Update case in DISCLAIMER by @pjfanning in #1746
- chore: bump dev version to 0.7.0 by @chaokunyang in #1755
- chore(java): rename copyTrackingRef to copyRef by @chaokunyang in #1748
- chore(java): add fury deep copy documentation by @chaokunyang in #1773
New Contributors
- @urlyy made their first contribution in #1712
- @zhaommmmomo made their first contribution in #1701
- @kitty-eu-org made their first contribution in #1752
- @komamitsu made their first contribution in #1768
Full Changelog: v0.6.0...v0.7.0
v0.7.0-rc1
What's Changed
- feat(Rust): add meta string encoding algorithm in Rust by @urlyy in #1712
- feat(Rust): Implement utf16 to utf8 conversion algorithm by @urlyy in #1730
- perf(java): add struct benchmark with pb by @chaokunyang in #1736
- feat(java): fast object copy framework in fury java by @zhaommmmomo in #1701
- perf(java): optimize pojo copy performance by @chaokunyang in #1739
- feat(java): support jdk17+ record copy by @chaokunyang in #1741
- chore: Update case in DISCLAIMER by @pjfanning in #1746
- feat(RUST): String detection is performed using SIMD techniques by @kitty-eu-org in #1752
- feat(java): Add 'Expose' annotation to support "only de/serialize annotated fields" by @urlyy in #1751
- fix(java): fix janino commons classes issue by @chaokunyang in #1753
- chore: bump dev version to 0.7.0 by @chaokunyang in #1755
- fix(scala): fix scala release version by @chaokunyang in #1756
- feat(java): support Ignore inconsistent types deserialize by @weijiang157152688 in #1737
- fix(java): fix streaming classdef read by @chaokunyang in #1758
- chore(java): rename copyTrackingRef to copyRef by @chaokunyang in #1748
- fix(java): fix big buffer streaming MetaShared read offset by @chaokunyang in #1760
- fix(java): fix fury logger npe by @chaokunyang in #1762
- fix(java): fix enum abstract field serialization by @chaokunyang in #1765
- perf(java): optimize map copy perf by @chaokunyang in #1767
- fix(java): Fix memory leak in
StructSerializer.xread()
caused by re-pushing instead of poppingGenericType
. by @komamitsu in #1768 - perf(java): optimize list copy perf by @chaokunyang in #1769
- perf(java): optimize object array copy perf by @chaokunyang in #1770
- feat(java): support deep ref copy by @chaokunyang in #1771
- chore(java): add fury deep copy documentation by @chaokunyang in #1773
New Contributors
- @urlyy made their first contribution in #1712
- @zhaommmmomo made their first contribution in #1701
- @kitty-eu-org made their first contribution in #1752
- @komamitsu made their first contribution in #1768
Full Changelog: v0.6.0...v0.7.0-rc1