v0.2.0
Release Highlights
Java
- Support JDK17+ record JIT/Interpreter serialization
- Support JDK17+ record JIT/Interpreter serialization backward/forward compatibility
- Support jdk9+ Immutable Collections JIT/Interpreter mode serialization, much faster compared to other frameworks
- New collection serialization protocol by homogenization, 1.5x speed up, 2X space saving.
- Desgined and implemented a new long compression algorithm, with performance cost less than 10% but give 50% compresstion ratio
- Support configuring compress int/long independently, enable int/long compression by default
- Add class checker API and Whitelist/Blacklist based implementation to enhance security
Python
- Support pyarrow6 bazel build
- Support python 3.10
JavaScript
- [JavaScript] support fury for browser
- [JavaScript] support polymorphism
- [JavaScript] enhancement performance
Golang
- Implement Golang serialization framework, which support reference, pointer, data serialization
- Implement serializers for string/numbers/slice/map/slice/struct/pointer
What's Changed
- [JavaScript] enhancement performance and bugfix by @wangweipeng2 in #811
- [JavaScript] support polymorphism by @wangweipeng2 in #814
- Create SECURITY.md by @chaokunyang in #817
- [JavaScript] fix bug #703 by @wangweipeng2 in #819
- [Java] fix isSecure check for xlang in java by @chaokunyang in #822
- [Doc] add protocol wire format wip by @chaokunyang in #823
- [JavaScript] write tag hash by @wangweipeng2 in #825
- [JavaScript] support browser by @wangweipeng2 in #830
- [Java] register empty object by default by @chaokunyang in #829
- [Java] upgrade guava for CVE-2023-2976 by @chaokunyang in #831
- [JavaScript] detect platform wrong by @wangweipeng2 in #832
- [JavaScript] add test by @wangweipeng2 in #836
- [Java] Add compatible ci for JDK8/11/13/15/17 by @chaokunyang in #835
- [Java] use java.lang.ClassValue to cache Lookup by @chaokunyang in #844
- [Java] Refactor integration tests by @chaokunyang in #845
- [Java] suppress maven download logs by --no-transfer-progress by @chaokunyang in #846
- [Java] add missing jdk primitive function by @chaokunyang in #848
- [Java] make getter lambda functions by @chaokunyang in #849
- [Java] add record utils by @chaokunyang in #850
- [Java] Support access record field value by @chaokunyang in #851
- [Java] interpreter mode support for record serialization by @chaokunyang in #852
- [CI] Fix checkstyle by @chaokunyang in #853
- [Java] Support jdk record forward/backward interpreter serialization by @chaokunyang in #854
- [Java] Support jdk record metashare mode by @chaokunyang in #855
- [Java] move record utils to record pkg by @chaokunyang in #856
- [Java] move inner functions outside by @chaokunyang in #857
- [Python] Support pyarrow6 bazel build by @chaokunyang in #859
- [Python] add missing shared lib for python by @chaokunyang in #862
- [Python] fix python deploy by @chaokunyang in #863
- [Java] Jdk record compatible jit by @chaokunyang in #864
- [Java] JIT serialization for JDK record by @chaokunyang in #866
- [Java] support private record jit by @chaokunyang in #869
- [Java] optimize buffer copy by @chaokunyang in #870
- [Doc] Fix row format doc by @chaokunyang in #873
- [Java] Support compress int long independently by @chaokunyang in #875
- [Java] fix ofHashMap by @chaokunyang in #877
- [Java] add jdk tools.jar for tests by @chaokunyang in #881
- [Java] register common exception by @chaokunyang in #879
- [Java] Fix lazy bean serializer by @chaokunyang in #883
- [Java] print exception for fury creation by @chaokunyang in #885
- [Java] remove getCurrentFury API by @chaokunyang in #887
- [Java] Add fury map iterator api by @chaokunyang in #889
- [Java] Add class checker API by @chaokunyang in #890
- [Python] Fix python linux deploy missing shared library files by @chaokunyang in #892
- [Java] refine AllowListChecker by @chaokunyang in #893
- Update README.md by @chaokunyang in #894
- [Java] support immutable collection/map jit and generics optimization by @chaokunyang in #895
- [Java] cache generated guava constructor by @chaokunyang in #897
- [Java] Optimize jdk9+ immutable collection serialization by @chaokunyang in #900
- [Java] add jdk20 tests by @chaokunyang in #901
- [Java] optimize duplicate fields utils by @chaokunyang in #905
- [Java] fix jit error for package-level field with private type by @chaokunyang in #907
- [Java] update blacklist by @chaokunyang in #913
- [Python] Use cloudpickle for local function serialization by @chaokunyang in #914
- [Python] fix row format getter by @chaokunyang in #915
- [Java] disable class check by default by @chaokunyang in #917
- [Java] refine java docs by @chaokunyang in #918
- Update blacklist.txt by @chaokunyang in #920
- [Java] Skip
toString
in annotation invocation handlerreadObject
by @chaokunyang in #922 - Optimize StringBuilder/StringBuffer serialization by @pandalee99 in #908
- Bump release versin to 0.1.2 by @chaokunyang in #924
- [Doc] add basic type java format doc by @chaokunyang in #928
- [Java] speed test codegen speed by avoid duplicate codegen by @chaokunyang in #929
- [Java] Optimize collection serialization protocol by homogenization by @chaokunyang in #923
- Bump org.apache.avro:avro from 1.11.1 to 1.11.3 in /java/fury-benchmark by @dependabot in #931
- [Java] Rename classinfocache to classinfoholder by @chaokunyang in #933
- [Java] put together all primitive serializers by @chaokunyang in #934
- [Java] Fix jvm crash caused by varint out-of-bound writing by @chaokunyang in #937
- [Java] enable int compression by default by @chaokunyang in #935
- [Java] put together all fury related config classes into
config
package by @chaokunyang in #940 - [Java] Add SLI(small long as int) long encoding algorithm by @chaokunyang in #942
- [Java] use raw type serializer for getSerialzier in jit by @chaokunyang in #943
- [Java] use varint for class id encoding to reduce space cost by @chaokunyang in #945
- [Java] Fix Collection/Map jit/interpreter protocol inconsisitency for generics instantiated subclass by @chaokunyang in #947
- [Go] add fury go util and ci tests by @chaokunyang in #950
- [Go] add fury go buffer implementation by @chaokunyang in #952
- [Go] add fury go serialization framework by @chaokunyang in #954
- [Go] add serializers for common go types by @chaokunyang in #956
- [Java] fix varint writeindex grow for jit by @chaokunyang in #957
- [Go] add fury go map serializer by @chaokunyang in #959
- [Go] add slice serializer for fury go by @chaokunyang in #961
- [Go] add set serializer for fury go by @chaokunyang in #963
- [Go] Add struct serializer for fury go by @chaokunyang in #965
- [Go] add ref tracking tests by @chaokunyang in #967
- [Go] add fury type dispatch tests by @chaokunyang in #969
- [Go] add fury serialization tests by @chaokunyang in #971
- [Go] Add fury xlang tests by @chaokunyang in #973
- [Go] rename Reference to Ref by @chaokunyang in #975
- [Java] add jdk 21 tests by @chaokunyang in #977
- [Java] add jdk 21 tests ci by @chaokunyang in #978
- [Java] Optimize sli long read/write by @chaokunyang in #981
- [Doc] upgrade docs by @chaokunyang in #985 #986 #987
- [Java] add serializeJavaObject API to ThreadSafeFury by @chaokunyang in #988
- [Java] fix jdk17/21 ci latest_jdk_tests skip by @chaokunyang in #989
New Contributors
- @pandalee99 made their first contribution in #908
- @ilxqx made their first contribution in fury-project/dubbo-serialization-fury#1
- @T-baby made their first contribution in fury-project/dubbo-serialization-fury#13
Full Changelog: v0.1.0...v0.2.0