The Apache Fury team is pleased to announce the 0.9.0 release. This is a major release that includes 34 PR from 14 distinct contributors. See the Install Page to learn how to get the libraries for your platform.
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 https://github.com/apache/fury/pull/1877
- feat(kotlin): Add Unsigned Primitive Support by @wywen in https://github.com/apache/fury/pull/1886
- feat(kotlin): Add unsigned array support and tests for arrays and strings by @wywen in https://github.com/apache/fury/pull/1891
- feat(java): Refactor String serialization and deserialization by @HuangXingBo in https://github.com/apache/fury/pull/1890
- feat(java): support thread safe register callback for scala kotlin by @chaokunyang in https://github.com/apache/fury/pull/1895
- feat(scala): add scala range serializer by @chaokunyang in https://github.com/apache/fury/pull/1899
- feat(java): add option to treat enum as string by @orisgarno in https://github.com/apache/fury/pull/1892
- feat(kotlin): Add tests and support for built-in types from the kotlin stdlib by @wywen in https://github.com/apache/fury/pull/1901
- feat(java): reduce metastring hashcode payload for small string(
<=16 bytes
) by @chaokunyang in https://github.com/apache/fury/pull/1909 - feat(javascript): Added serialization and serialization for Type Meta Layer by @Forchapeatl in https://github.com/apache/fury/pull/1825
- feat(bazel): support building C++ libs on windows platform by @An-DJ in https://github.com/apache/fury/pull/1873
- feat(scala): support scala native image build by @chaokunyang in https://github.com/apache/fury/pull/1922
- perf(python): Add python benchmark test by @penguin-wwy in https://github.com/apache/fury/pull/1916
Bug Fix
- fix(scala): ban these sbt commands by @pjfanning in https://github.com/apache/fury/pull/1862
- fix(java): fix async compilation switch for non-public nested class by @chaokunyang in https://github.com/apache/fury/pull/1883
- fix(java): fix add fury thread safety issue by @chaokunyang in https://github.com/apache/fury/pull/1889
- fix(other): fix feature request template by @chaokunyang in https://github.com/apache/fury/pull/1898
- fix(java): NonExistentEnum on mode serializeEnumByName by @orisgarno in https://github.com/apache/fury/pull/1904
- fix(java): ThreadLocalFury and ThreadPoolFury prioritize using the user classloader by @Aliothmoon in https://github.com/apache/fury/pull/1907
- fix(java): child container deep copy by @zhaommmmomo in https://github.com/apache/fury/pull/1911
- fix(java): Fix incorrect results of utf16 to utf8 conversion for latin1 but not ascii characters in https://github.com/apache/fury/pull/1914
- fix(python): Eliminate PytestCollectionWarning when running pytest by @penguin-wwy in https://github.com/apache/fury/pull/1917
Other Improvements
- chore(py314): Replace deprecated pkgutil.find_loader by @effigies in https://github.com/apache/fury/pull/1888
- docs(guide): Fix package typo by @mandrean in https://github.com/apache/fury/pull/1906
- build(kotlin): Add spotless ktfmt and enable explicit api mode for library code. by @wywen in https://github.com/apache/fury/pull/1912
- build(deps): upgrade scala (2.13.15/3.3.4) by @pjfanning in https://github.com/apache/fury/pull/1861
- feat(rust): add rust-analyzer to toolchain by @caicancai in https://github.com/apache/fury/pull/1865
- chore(scala): add scala build script by @chaokunyang in https://github.com/apache/fury/pull/1920
- chore(kotlin): add parent pom for fury kotlin by @chaokunyang in https://github.com/apache/fury/pull/1921
- feat(java): Improve error message on architecture not using little-endian format by @apupier in https://github.com/apache/fury/pull/1918
New Contributors
- @An-DJ made their first contribution in https://github.com/apache/fury/pull/1873
- @wywen made their first contribution in https://github.com/apache/fury/pull/1877
- @effigies made their first contribution in https://github.com/apache/fury/pull/1888
- @HuangXingBo made their first contribution in https://github.com/apache/fury/pull/1890
- @orisgarno made their first contribution in https://github.com/apache/fury/pull/1892
- @mandrean made their first contribution in https://github.com/apache/fury/pull/1906
- @Aliothmoon made their first contribution in https://github.com/apache/fury/pull/1907
- @penguin-wwy made their first contribution in https://github.com/apache/fury/pull/1916
- @apupier made their first contribution in https://github.com/apache/fury/pull/1918
Full Changelog: https://github.com/apache/fury/compare/v0.8.0...v0.9.0
Acknowledgements
Thanks @effigies @apupier @wywen @mandrean @HuangXingBo @pjfanning @chaokunyang @penguin-wwy @An-DJ @Forchapeatl @orisgarno @zhaommmmomo @caicancai @Aliothmoon
A big thank you to all our contributors who have worked hard on this release. Your contributions, whether through code, documentation, or issue reporting, are really appreciated.