Releases: apache/fury
v0.5.1
The Apache Fury team is pleased to announce the 0.5.1 release. This is a minor release that includes 36 PR from 7 distinct contributors. See the Install Page to learn how to get the libraries for your platform.
Feature
- feat(spec): remove list/map header from type meta spec by @chaokunyang in #1590
- perf(java): Reduce performance regression caused by deleteCharAt by @LiangliangSui in #1591
- feat(java): type meta encoding for java by @chaokunyang in #1556 and #1601
- feat(sepc): update type meta field info spec by @chaokunyang in #1603
- feat(javascript): add data to description util by @bytemain in #1609
- feat(java): Support CopyOnWriteArrayListSerializer by @MrChang0 in #1613
- feat(java): add blocked stream utils by @chaokunyang in #1617
- feat(go/java): Add ASCII check before meta string encoding by @jasonmokk in #1620
- feat(java): register old version guava collect by @MrChang0 in #1622
- feat(java): support deserialization ignoreEnumDeserializeError by @157152688 in #1623
- feat(java): add set serializer for concurrent set by @MrChang0 in #1616
- feat(java): add custom serializer register in case of special serializer ctr by @MrChang0 in #1625
- feat(java): remove soft/weak ref values from thread safe fury by @chaokunyang in #1639
- refactor(java): Remove Guava's Collection usages by @Munoon in #1611 and #1614
- refactor(java): replace Guava's string utility methods with own implementation by @Munoon in #1624
Bug Fix
- fix(java): compatible low version guava by @MrChang0 in #1593 and #1594
- fix(java): fix getClassDef thead safety by @chaokunyang in #1597
- fix(java): remove maven groupId change by @chaokunyang in #1602
- fix(java): make slf4j provided by @chaokunyang in #1605
- fix(java): clear serializer for collection/map by @chaokunyang in #1606
- fix(java): fix TypeRef getSubType by @chaokunyang in #1608
- fix(java): fix fastutil Object2ObjectOpenHashMap serialization by @chaokunyang in #1618
- fix(java): subclass without fields will encode superclass by @MrChang0 in #1626
- fix(java): fix wildcard capturer capture NullPointerException by @chaokunyang in #1637
- fix(java): fix abstract collection elems same type serialization by @chaokunyang in #1641
- fix(java): ThreadPoolFury#factoryCallback don't work when create new classLoaderFuryPooled by @MrChang0 in #1628
- fix(go/java): Enhance ASCII check in meta string encoding by @jasonmokk in #1631
Misc
- chore(java): move tests to meta/reflect pkg by @chaokunyang in #1592
- chore(java): make enum serializer as an upper level class by @chaokunyang in #1598
- chore: bump dev version to 0.6.0 by @chaokunyang in #1599
- chore: Fury header add language field by @LiangliangSui in #1612
- chore(java): rename deserializeUnexistentEnumValueAsNull to deserializeNonexistentAsNull by @chaokunyang in #1634
- chore(java): remove gpg pinentry-mode by @chaokunyang in #1636
New Contributors
- @MrChang0 made their first contribution in #1594
- @jasonmokk made their first contribution in #1620
- @157152688 made their first contribution in #1623
Full Changelog: v0.5.0...v0.5.1
v0.5.1-rc2
What's Changed
- feat(spec): remove list/map header from type meta spec by @chaokunyang in #1590
- chore(java): move tests to meta/reflect pkg by @chaokunyang in #1592
- fix(java): compatible low version guava(#1593) by @MrChang0 in #1594
- perf(java): Reduce performance regression caused by deleteCharAt by @LiangliangSui in #1591
- feat(java): type meta encoding for java by @chaokunyang in #1556
- fix(java): fix getClassDef thead safety by @chaokunyang in #1597
- fix(java): skip register unexisted skip class by @chaokunyang in #1601
- chore(java): make enum serializer as an upper level class by @chaokunyang in #1598
- fix(java): make slf4j provided by @chaokunyang in #1605
- fix(java): clear serializer for collection/map by @chaokunyang in #1606
- feat(sepc): update type meta field info spec by @chaokunyang in #1603
- fix(java): fix TypeRef getSubType by @chaokunyang in #1608
- feat(javascript): add data to description util by @bytemain in #1609
- refactor(java): Remove Guava's Collection usages by @Munoon in #1611
- feat(java): Support CopyOnWriteArrayListSerializer by @MrChang0 in #1613
- chore: Fury header add language field by @LiangliangSui in #1612
- refactor(java): Remove Guava's Concurrency utils usages by @Munoon in #1614
- fix(java): fix fastutil Object2ObjectOpenHashMap serialization by @chaokunyang in #1618
- feat(java): add blocked stream utils by @chaokunyang in #1617
- feat(go/java): Add ASCII check before meta string encoding by @jasonmokk in #1620
- feat(java): register old version guava collect by @MrChang0 in #1622
- feat(java): support deserialization ignoreEnumDeserializeError by @157152688 in #1623
- feat(java): add set serializer for concurrent set by @MrChang0 in #1616
- feat(java): add custom serializer register in case of special serializer ctr by @MrChang0 in #1625
- fix(java): subclass without fields will encode superclass by @MrChang0 in #1626
- refactor(java): replace Guava's string utility methods with own implementation by @Munoon in #1624
- fix(java): ThreadPoolFury#factoryCallback don't work when create new classLoaderFuryPooled by @MrChang0 in #1628
- fix(go/java): Enhance ASCII check in meta string encoding by @jasonmokk in #1631
- chore(java): rename deserializeUnexistentEnumValueAsNull to deserializeNonexistentAsNull by @chaokunyang in #1634
- chore(java): remove gpg pinentry-mode by @chaokunyang in #1636
- fix(java): fix wildcard capturer capture NullPointerException by @chaokunyang in #1637
- fix(java): fix abstract collection elems same type serialization by @chaokunyang in #1641
- feat(java): remove soft/weak ref values from thread safe fury by @chaokunyang in #1639
New Contributors
- @MrChang0 made their first contribution in #1594
- @jasonmokk made their first contribution in #1620
- @157152688 made their first contribution in #1623
Full Changelog: v0.5.0...v0.5.1-rc2
v0.5.1-rc1
What's Changed
- feat(spec): remove list/map header from type meta spec by @chaokunyang in #1590
- chore(java): move tests to meta/reflect pkg by @chaokunyang in #1592
- fix(java): compatible low version guava(#1593) by @MrChang0 in #1594
- perf(java): Reduce performance regression caused by deleteCharAt by @LiangliangSui in #1591
- feat(java): type meta encoding for java by @chaokunyang in #1556
- fix(java): fix getClassDef thead safety by @chaokunyang in #1597
- fix(java): skip register unexisted skip class by @chaokunyang in #1601
- chore(java): make enum serializer as an upper level class by @chaokunyang in #1598
- chore: bump dev version to 0.6.0 by @chaokunyang in #1599
- fix(java): remove maven groupId change by @chaokunyang in #1602
- fix(java): make slf4j provided by @chaokunyang in #1605
- fix(java): clear serializer for collection/map by @chaokunyang in #1606
- feat(sepc): update type meta field info spec by @chaokunyang in #1603
- fix(java): fix TypeRef getSubType by @chaokunyang in #1608
- feat(javascript): add data to description util by @bytemain in #1609
- refactor(java): Remove Guava's Collection usages by @Munoon in #1611
- feat(java): Support CopyOnWriteArrayListSerializer by @MrChang0 in #1613
- chore: Fury header add language field by @LiangliangSui in #1612
- refactor(java): Remove Guava's Concurrency utils usages by @Munoon in #1614
- fix(java): fix fastutil Object2ObjectOpenHashMap serialization by @chaokunyang in #1618
- feat(java): add blocked stream utils by @chaokunyang in #1617
- feat(go/java): Add ASCII check before meta string encoding by @jasonmokk in #1620
- feat(java): register old version guava collect by @MrChang0 in #1622
- feat(java): support deserialization ignoreEnumDeserializeError by @157152688 in #1623
- feat(java): add set serializer for concurrent set by @MrChang0 in #1616
New Contributors
- @MrChang0 made their first contribution in #1594
- @jasonmokk made their first contribution in #1620
- @157152688 made their first contribution in #1623
Full Changelog: v0.5.0...v0.5.1-rc1
v0.5.0
We're excited to announce the release of Fury v0.5.0. This release incorporates a myriad of improvements, bug fixes, and new features across multiple languages including Java, Golang, Python and JavaScript. It further refines Fury's performance, compatibility, and developer experience.
New Features
Specification
- Introduced fury cross-language serialization specification (#1413, #1508)
- Introduced xlang type mapping (#1468)
- Introduced fury java specification (#1240)
- Introduced meta string encoding specification (#1565, #1513, #1517)
Java
- Support for compatible mode with GraalVM (#1586, #1587).
- Support unexisted array/enum classes and enabled deserializeUnexistedClass by default (#1569, #1575).
- meta string encoding algorithm in java (#1514, #1568, #1516, #1565)
- Support meta string encoding for classname and package name (#1527)
- native streaming mode deserialization (#1451, #1551)
- native channel stream reader (#1483)
- Support registration in thread safe fury (#1280)
- Implement fury logger and remove slf4j library (#1485, #1494, #1506, #1492)
- Support adjust logger level dynamically (#1557)
- Support jdk proxy serialization for graalvm (#1379)
- Specify JPMS module names (#1343)
- Align string array to collection protocol v2 (#1228)
JavaScript
- Align implementation to new Xlang protocol (#1487)
- Implement Xlang map (#1549)
- Implemented xlang map code generator (#1571)
- Added magic number feature for better serialization control (#1550).
- Support oneof (#1348)
- create zero-copy buffer when convert (#1386)
- Implement the collection protocol (#1337)
- Implement Enum (#1321)
- compress numbers (#1290)
C++
- Support optional fields/elements in RowEncoder (#1223)
- Support mapping types for RowEncodeTrait (#1247)
Golang
Enhancements
Java
- Improved buffer growth strategy to support larger data sizes for serialization (#1582).
- Performance optimizations for MetaStringDecoder and various serialization processes (#1568, #1511, #1493).
- concat write classname flag with package name (#1523)
- concat meta string len with flags (#1517)
- fastpath for read/write small varint in range
[0,127]
(#1503) - optimize read float/double for jvm jit inline (#1472)
- replace Guava's TypeToken with self-made (#1553)
- Remove basic guava API usage (#1244)
- optimize fury creation speed (#1511)
- optimize string serialization by concat coder and length (#1486)
- carry read objects when deserialization fail for better trouble shooting (#1420)
- implement define_class insteadof using javaassist (#1422)
- avoid recompilation when gc happens for memory pressure (#1411, #1585)
- Fix immutable collection ref tracking (#1403)
- reduce fury caller stack (#1496)
- Extract BaseFury interface (#1382)
- refine collection builder util (#1334)
- disable async compilation for graalvm (#1222)
- refine endian check code size in buffer (#1501)
- generate list fori loop instead of iterator loop for list serialization (#1493)
- Reduce unsafeWritePositiveVarLong bytecode size. (#1491)
- Reduce unsafePutPositiveVarInt bytecode size. (#1490, #1489)
- optimize read char/short jvm jit inline (#1471)
- reduce code size of read long to optimize jvm jit inline (#1470)
- reduce readInt/readVarInt code size for for jvm jit inline (#1469)
- refactor readVarUint32 algorithm (#1462)
- rewrite readVarUint64 algorithm (#1463)
JavaScript
- Make PlatformBuffer available if has Buffer polyfill (#1373)
- enhance performance 64bits number (#1320)
- Refactor & Compress Long (#1313)
- Improve tag write performance (#1241)
- Add more methods for BinaryReader (#1231)
- Implements tuple serializer (#1216)
Python
- concat meta string len with flags (#1517)
Bug Fix
Java
- Fix bytebuffer no such method error (#1580)
- Prevent exception in ObjectArray.clearObjectArray() (#1573)
- Fix slf4j on graalvm (#1432)
- Fix illegal classname caused by negative hash (#1436)
- Fix BigDecimal serializer (#1431)
- Fix BigInteger serialization (#1479)
- Fix type conflict in method split (#1371)
- Fix CodeGen Name conflicts when omitting java.lang prefix #1363 (#1366)
- Fix ClassLoader npe in loadOrGenCodecClass (#1346)
- Fix big buffer trunc (#1402)
- Make Blacklist detection is also performed when the Class is registered. (#1398)
- avoid big object graph cause buffer take up too much memory (#1397)
- Fix get static field by unsafe (#1380)
- Fix javax package for accessor codegen (#1388)
- Fix nested collection cast for scala/java (#1333)
- Fix References within InvocationHandler (#1365)
- Allow partial read of serialized size from
InputStream
(#1391) - add potential missing bean class-loader (#1381)
- Fix polymorphic array serialization (#1324)
- Fix nested collection num elements (#1306)
- Fix collection init size typo (#1342)
- Clear extRegistry.getClassCtx if generate serializer class failed (#1221)
Rust
Miscellaneous
- Numerous code cleanups, refactorings, and internal improvements across all supported languages to enhance code quality
and maintainability. - Moved various utilities into more appropriate packages to improve code organization and readability (#1584, #1583,
#1578). - rename MemoryBuffer read/write/put/getType with read/write/put/getTypeNumber (#1480, #1464, #1505, #1500)
- extract public Fury methods to BaseFury (#1467)
- Optimize Class ID allocation. (#1406)
- refine Collection util data structure (#1287) (#1288)
- Improve Status by using unique_ptr (#1234)
- Improve FormatTimePoint by removing sstream (#1233)
- Drop optional chaining expression (#1338)
New Contributors
- @nandakumar131 made their first contribution in #1244
- @vesense made their first contribution in #1260
- @LiangliangSui made their first contribution in #1294
- @liuxiaocs7 made their first contribution in #1312
- @mtf90 made their first contribution in #1343
- @bowin made their first contribution in #1353
- @cn-at-osmit made their first contribution in #1366
- @Maurice-Betzel made their first contribution in #1381
- @phogh made their first contribution in #1391
- @laglangyue made their first contribution in #1415
- @Munoon made their first contribution in #1467
- @pixeeai made their first contribution in #1559
- @huisman6 made their first contribution in #1572
- @tommyettinger made their first contribution in #1573
- @qingoba made their first contribution in #1566
Acknowledgements
Thanks @chaokunyang @theweipeng @PragmaTwice @LiangliangSui @nandakumar131 @Munoon @qingoba @vesense @liuxiaocs7 @mtf90 @bowin @cn-at-osmit @Maurice-Betzel @phogh @laglangyue @tommyettinger @huisman6 @pixeeai
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.
Full Changelog: v0.4.1...v0.5.0
v0.5.0-rc4
What's Changed
- [Java] Clear extRegistry.getClassCtx if generate serializer class failed by @chaokunyang in #1221
- [C++] Support optional fields/elements in RowEncoder by @PragmaTwice in #1223
- [JavaScript] Implements tuple serializer by @bytemain in #1216
- [Rust] Remove unnecessary abstraction by @theweipeng in #1225
- [Java] disable async compilation for graalvm by @chaokunyang in #1222
- [Java] Align string array to collection protocol v2 by @chaokunyang in #1228
- [Improve] add rust doc by @caicancai in #1226
- [JavaScript] Add more methods for BinaryReader by @bytemain in #1231
- [C++] Improve FormatTimePoint by removing sstream by @PragmaTwice in #1233
- [C++] Improve Status by using unique_ptr by @PragmaTwice in #1234
- [JavaScript] Add lint tools by @bytemain in #1232
- [Doc][Spec] fury java serialization spec by @chaokunyang in #1238
- [Doc] bump release version to 0.4.1 by @chaokunyang in #1242
- [Java] Remove guava part 2. by @nandakumar131 in #1244
- [C++] Support mapping types for RowEncodeTrait by @PragmaTwice in #1247
- Update apache license by @chaokunyang in #1246
- Rename to Apache Fury in README by @PragmaTwice in #1249
- [Java][Doc] enable requireClassRegistration in example by default by @chaokunyang in #1250
- chore: setup apache repo by @tisonkun in #1251
- chore: clear alipay refs by @tisonkun in #1252
- chore: add NOTICE and DISCLAIMER by @tisonkun in #1253
- Delete CODE_OF_CONDUCT.md by @pjfanning in #1255
- docs: polish CONTRIBUTING doc by @tisonkun in #1257
- Add collaborators to workaround unfinished apache ID procedure by @PragmaTwice in #1256
- chore: relocate Maven GAV and Java package by @tisonkun in #1259
- Add maven badge by @vesense in #1260
- Add slack channel to README by @PragmaTwice in #1261
- chore: reflect PPMC members set up by @tisonkun in #1262
- ci: Release Fury Java Snapshot by @tisonkun in #1264
- [DOC] doc sync stay consistent with the site by @theweipeng in #1266
- [Java] Format integration tests code by @chaokunyang in #1263
- [JavaScript] Improve tag write performance by @bytemain in #1241
- update fury java install by @chaokunyang in #1268
- [Java][Doc] Switch Option and Description column for better readability by @chaokunyang in #1267
- Update twitter id in README.md to ApacheFury by @chaokunyang in #1270
- [Java] Clean-up of tmp files created in CrossLanguageTest by @nandakumar131 in #1277
- [CODE HEADER] Remove all fury author tag by @chaokunyang in #1282
- [Java] Support registration in thread safe fury by @chaokunyang in #1280
- [JAVA] add guava license header by @pjfanning in #1283
- [JAVA] remove license header from MurmurHash3 by @pjfanning in #1284
- Update NOTICE to mention all the licenses for source files where code is borrowed from different project. by @nandakumar131 in #1285
- [Java] refine Collection util data structure (#1287) by @mof-dev-3 in #1288
- Update copyright date in NOTICE by @PragmaTwice in #1289
- [JavaScript] Implement the standard protocol by @theweipeng in #1286
- [Java] Fix fury benchmark jmh GPLV2 license conflict by @chaokunyang in #1272
- [JavaScript] compress numbers by @theweipeng in #1290
- chore: tidy text and improve branding by @tisonkun in #1292
- [Java] remove vague desc in drop-in replacement jdk serialization libs by @chaokunyang in #1291
- [CI] Add macos C++ build to ci.yml by @PragmaTwice in #1295
- [C++] Windows build support by @LiangliangSui in #1294
- [C++] Use python3 instead of python in bazel build by @PragmaTwice in #1297
- [C++] Remove unused function by @LiangliangSui in #1298
- Refine words and remove other org links in README by @PragmaTwice in #1307
- [Java] fix nested collection num elements by @chaokunyang in #1306
- Keep head metadata as is in docs by @PragmaTwice in #1311
- [MINOR] Update CODEOWNERS by @liuxiaocs7 in #1312
- Refine English writing about benchmark in README by @PragmaTwice in #1314
- [DOC] Refine build steps and wording in DEVELOPMENT by @PragmaTwice in #1315
- ci: add PR title lint following the conventional commits by @PragmaTwice in #1317
- chore: Update CODEOWNERS by @chaokunyang in #1316
- feat(javascript): Refactor & Compress Long by @theweipeng in #1313
- docs: Remove extra symbols by @caicancai in #1310
- perf(java): merge perftests into benchmark by @chaokunyang in #1318
- perf(java): rename fury-benchmark to benchmark by @chaokunyang in #1319
- feat(JavaScript): Implement Enum by @theweipeng in #1321
- chore(C++): Remove unused bazel rulers by @LiangliangSui in #1322
- feat(JavaScript): enhance performance 64bits number by @theweipeng in #1320
- ci(c++): Implement C++ CI scripts using python by @LiangliangSui in #1303
- fix(java): fix polymorphic array serialization by @chaokunyang in #1324
- chore(git): update .gitignore by @LiangliangSui in #1331
- feat(java): refine collection builder util by @chaokunyang in #1334
- chore(cpp): rename src to cpp by @chaokunyang in #1329
- chore(JavaScript): Drop optional chaining expression by @bytemain in #1338
- feat(java): refine collection builder util (#1334), fix collection init size typo by @mof-dev-3 in #1342
- fix(java): fix nested collection cast for scala/java by @chaokunyang in #1333
- feat(java): Specify JPMS module names by @mtf90 in #1343
- feat(JavaScript): Implement the collection protocol by @theweipeng in #1337
- fix(Rust): incorrect cast by @theweipeng in #1345
- feat(ci): Rust ci is ported from run_ci.sh to run_ci.py by @LiangliangSui in #1332
- fix(java): fix ClassLoader npe in loadOrGenCodecClass by @chaokunyang in #1346
- chore(java): Remove redundant code by @LiangliangSui in #1349
- fix(go): fix comment error, should be 1-5 byte by @bowin in #1353
- chore(JavaScript): Fix JavaScript test CI by @theweipeng in #1355
- chore(JavaScript): fix test ci on early Node by @theweipeng in #1356
- chore(JavaScript): Fix using npm run build error by @LiangliangSui in #1357
- ci(JavaScript): JavaScript ci is ported from run_ci.sh to run_ci.py by @LiangliangSui in #1358
- feat(JavaScript): Support oneof by @theweipeng in htt...
0.5.0-rc3
What's Changed
- [Java] Clear extRegistry.getClassCtx if generate serializer class failed by @chaokunyang in #1221
- [C++] Support optional fields/elements in RowEncoder by @PragmaTwice in #1223
- [JavaScript] Implements tuple serializer by @bytemain in #1216
- [Rust] Remove unnecessary abstraction by @theweipeng in #1225
- [Java] disable async compilation for graalvm by @chaokunyang in #1222
- [Java] Align string array to collection protocol v2 by @chaokunyang in #1228
- [Improve] add rust doc by @caicancai in #1226
- [JavaScript] Add more methods for BinaryReader by @bytemain in #1231
- [C++] Improve FormatTimePoint by removing sstream by @PragmaTwice in #1233
- [C++] Improve Status by using unique_ptr by @PragmaTwice in #1234
- [JavaScript] Add lint tools by @bytemain in #1232
- [Doc][Spec] fury java serialization spec by @chaokunyang in #1238
- [Doc] bump release version to 0.4.1 by @chaokunyang in #1242
- [Java] Remove guava part 2. by @nandakumar131 in #1244
- [C++] Support mapping types for RowEncodeTrait by @PragmaTwice in #1247
- Update apache license by @chaokunyang in #1246
- Rename to Apache Fury in README by @PragmaTwice in #1249
- [Java][Doc] enable requireClassRegistration in example by default by @chaokunyang in #1250
- chore: setup apache repo by @tisonkun in #1251
- chore: clear alipay refs by @tisonkun in #1252
- chore: add NOTICE and DISCLAIMER by @tisonkun in #1253
- Delete CODE_OF_CONDUCT.md by @pjfanning in #1255
- docs: polish CONTRIBUTING doc by @tisonkun in #1257
- Add collaborators to workaround unfinished apache ID procedure by @PragmaTwice in #1256
- chore: relocate Maven GAV and Java package by @tisonkun in #1259
- Add maven badge by @vesense in #1260
- Add slack channel to README by @PragmaTwice in #1261
- chore: reflect PPMC members set up by @tisonkun in #1262
- ci: Release Fury Java Snapshot by @tisonkun in #1264
- [DOC] doc sync stay consistent with the site by @theweipeng in #1266
- [Java] Format integration tests code by @chaokunyang in #1263
- [JavaScript] Improve tag write performance by @bytemain in #1241
- update fury java install by @chaokunyang in #1268
- [Java][Doc] Switch Option and Description column for better readability by @chaokunyang in #1267
- Update twitter id in README.md to ApacheFury by @chaokunyang in #1270
- [Java] Clean-up of tmp files created in CrossLanguageTest by @nandakumar131 in #1277
- [CODE HEADER] Remove all fury author tag by @chaokunyang in #1282
- [Java] Support registration in thread safe fury by @chaokunyang in #1280
- [JAVA] add guava license header by @pjfanning in #1283
- [JAVA] remove license header from MurmurHash3 by @pjfanning in #1284
- Update NOTICE to mention all the licenses for source files where code is borrowed from different project. by @nandakumar131 in #1285
- [Java] refine Collection util data structure (#1287) by @mof-dev-3 in #1288
- Update copyright date in NOTICE by @PragmaTwice in #1289
- [JavaScript] Implement the standard protocol by @theweipeng in #1286
- [Java] Fix fury benchmark jmh GPLV2 license conflict by @chaokunyang in #1272
- [JavaScript] compress numbers by @theweipeng in #1290
- chore: tidy text and improve branding by @tisonkun in #1292
- [Java] remove vague desc in drop-in replacement jdk serialization libs by @chaokunyang in #1291
- [CI] Add macos C++ build to ci.yml by @PragmaTwice in #1295
- [C++] Windows build support by @LiangliangSui in #1294
- [C++] Use python3 instead of python in bazel build by @PragmaTwice in #1297
- [C++] Remove unused function by @LiangliangSui in #1298
- Refine words and remove other org links in README by @PragmaTwice in #1307
- [Java] fix nested collection num elements by @chaokunyang in #1306
- Keep head metadata as is in docs by @PragmaTwice in #1311
- [MINOR] Update CODEOWNERS by @liuxiaocs7 in #1312
- Refine English writing about benchmark in README by @PragmaTwice in #1314
- [DOC] Refine build steps and wording in DEVELOPMENT by @PragmaTwice in #1315
- ci: add PR title lint following the conventional commits by @PragmaTwice in #1317
- chore: Update CODEOWNERS by @chaokunyang in #1316
- feat(javascript): Refactor & Compress Long by @theweipeng in #1313
- docs: Remove extra symbols by @caicancai in #1310
- perf(java): merge perftests into benchmark by @chaokunyang in #1318
- perf(java): rename fury-benchmark to benchmark by @chaokunyang in #1319
- feat(JavaScript): Implement Enum by @theweipeng in #1321
- chore(C++): Remove unused bazel rulers by @LiangliangSui in #1322
- feat(JavaScript): enhance performance 64bits number by @theweipeng in #1320
- ci(c++): Implement C++ CI scripts using python by @LiangliangSui in #1303
- fix(java): fix polymorphic array serialization by @chaokunyang in #1324
- chore(git): update .gitignore by @LiangliangSui in #1331
- feat(java): refine collection builder util by @chaokunyang in #1334
- chore(cpp): rename src to cpp by @chaokunyang in #1329
- chore(JavaScript): Drop optional chaining expression by @bytemain in #1338
- feat(java): refine collection builder util (#1334), fix collection init size typo by @mof-dev-3 in #1342
- fix(java): fix nested collection cast for scala/java by @chaokunyang in #1333
- feat(java): Specify JPMS module names by @mtf90 in #1343
- feat(JavaScript): Implement the collection protocol by @theweipeng in #1337
- fix(Rust): incorrect cast by @theweipeng in #1345
- feat(ci): Rust ci is ported from run_ci.sh to run_ci.py by @LiangliangSui in #1332
- fix(java): fix ClassLoader npe in loadOrGenCodecClass by @chaokunyang in #1346
- chore(java): Remove redundant code by @LiangliangSui in #1349
- fix(go): fix comment error, should be 1-5 byte by @bowin in #1353
- chore(JavaScript): Fix JavaScript test CI by @theweipeng in #1355
- chore(JavaScript): fix test ci on early Node by @theweipeng in #1356
- chore(JavaScript): Fix using npm run build error by @LiangliangSui in #1357
- ci(JavaScript): JavaScript ci is ported from run_ci.sh to run_ci.py by @LiangliangSui in #1358
- feat(JavaScript): Support oneof by @theweipeng in htt...
0.5.0-rc2
What's Changed
- [Java] Clear extRegistry.getClassCtx if generate serializer class failed by @chaokunyang in #1221
- [C++] Support optional fields/elements in RowEncoder by @PragmaTwice in #1223
- [JavaScript] Implements tuple serializer by @bytemain in #1216
- [Rust] Remove unnecessary abstraction by @theweipeng in #1225
- [Java] disable async compilation for graalvm by @chaokunyang in #1222
- [Java] Align string array to collection protocol v2 by @chaokunyang in #1228
- [Improve] add rust doc by @caicancai in #1226
- [JavaScript] Add more methods for BinaryReader by @bytemain in #1231
- [C++] Improve FormatTimePoint by removing sstream by @PragmaTwice in #1233
- [C++] Improve Status by using unique_ptr by @PragmaTwice in #1234
- [JavaScript] Add lint tools by @bytemain in #1232
- [Doc][Spec] fury java serialization spec by @chaokunyang in #1238
- [Doc] bump release version to 0.4.1 by @chaokunyang in #1242
- [Java] Remove guava part 2. by @nandakumar131 in #1244
- [C++] Support mapping types for RowEncodeTrait by @PragmaTwice in #1247
- Update apache license by @chaokunyang in #1246
- Rename to Apache Fury in README by @PragmaTwice in #1249
- [Java][Doc] enable requireClassRegistration in example by default by @chaokunyang in #1250
- chore: setup apache repo by @tisonkun in #1251
- chore: clear alipay refs by @tisonkun in #1252
- chore: add NOTICE and DISCLAIMER by @tisonkun in #1253
- Delete CODE_OF_CONDUCT.md by @pjfanning in #1255
- docs: polish CONTRIBUTING doc by @tisonkun in #1257
- Add collaborators to workaround unfinished apache ID procedure by @PragmaTwice in #1256
- chore: relocate Maven GAV and Java package by @tisonkun in #1259
- Add maven badge by @vesense in #1260
- Add slack channel to README by @PragmaTwice in #1261
- chore: reflect PPMC members set up by @tisonkun in #1262
- ci: Release Fury Java Snapshot by @tisonkun in #1264
- [DOC] doc sync stay consistent with the site by @theweipeng in #1266
- [Java] Format integration tests code by @chaokunyang in #1263
- [JavaScript] Improve tag write performance by @bytemain in #1241
- update fury java install by @chaokunyang in #1268
- [Java][Doc] Switch Option and Description column for better readability by @chaokunyang in #1267
- Update twitter id in README.md to ApacheFury by @chaokunyang in #1270
- [Java] Clean-up of tmp files created in CrossLanguageTest by @nandakumar131 in #1277
- [CODE HEADER] Remove all fury author tag by @chaokunyang in #1282
- [Java] Support registration in thread safe fury by @chaokunyang in #1280
- [JAVA] add guava license header by @pjfanning in #1283
- [JAVA] remove license header from MurmurHash3 by @pjfanning in #1284
- Update NOTICE to mention all the licenses for source files where code is borrowed from different project. by @nandakumar131 in #1285
- [Java] refine Collection util data structure (#1287) by @mof-dev-3 in #1288
- Update copyright date in NOTICE by @PragmaTwice in #1289
- [JavaScript] Implement the standard protocol by @theweipeng in #1286
- [Java] Fix fury benchmark jmh GPLV2 license conflict by @chaokunyang in #1272
- [JavaScript] compress numbers by @theweipeng in #1290
- chore: tidy text and improve branding by @tisonkun in #1292
- [Java] remove vague desc in drop-in replacement jdk serialization libs by @chaokunyang in #1291
- [CI] Add macos C++ build to ci.yml by @PragmaTwice in #1295
- [C++] Windows build support by @LiangliangSui in #1294
- [C++] Use python3 instead of python in bazel build by @PragmaTwice in #1297
- [C++] Remove unused function by @LiangliangSui in #1298
- Refine words and remove other org links in README by @PragmaTwice in #1307
- [Java] fix nested collection num elements by @chaokunyang in #1306
- Keep head metadata as is in docs by @PragmaTwice in #1311
- [MINOR] Update CODEOWNERS by @liuxiaocs7 in #1312
- Refine English writing about benchmark in README by @PragmaTwice in #1314
- [DOC] Refine build steps and wording in DEVELOPMENT by @PragmaTwice in #1315
- ci: add PR title lint following the conventional commits by @PragmaTwice in #1317
- chore: Update CODEOWNERS by @chaokunyang in #1316
- feat(javascript): Refactor & Compress Long by @theweipeng in #1313
- docs: Remove extra symbols by @caicancai in #1310
- perf(java): merge perftests into benchmark by @chaokunyang in #1318
- perf(java): rename fury-benchmark to benchmark by @chaokunyang in #1319
- feat(JavaScript): Implement Enum by @theweipeng in #1321
- chore(C++): Remove unused bazel rulers by @LiangliangSui in #1322
- feat(JavaScript): enhance performance 64bits number by @theweipeng in #1320
- ci(c++): Implement C++ CI scripts using python by @LiangliangSui in #1303
- fix(java): fix polymorphic array serialization by @chaokunyang in #1324
- chore(git): update .gitignore by @LiangliangSui in #1331
- feat(java): refine collection builder util by @chaokunyang in #1334
- chore(cpp): rename src to cpp by @chaokunyang in #1329
- chore(JavaScript): Drop optional chaining expression by @bytemain in #1338
- feat(java): refine collection builder util (#1334), fix collection init size typo by @mof-dev-3 in #1342
- fix(java): fix nested collection cast for scala/java by @chaokunyang in #1333
- feat(java): Specify JPMS module names by @mtf90 in #1343
- feat(JavaScript): Implement the collection protocol by @theweipeng in #1337
- fix(Rust): incorrect cast by @theweipeng in #1345
- feat(ci): Rust ci is ported from run_ci.sh to run_ci.py by @LiangliangSui in #1332
- fix(java): fix ClassLoader npe in loadOrGenCodecClass by @chaokunyang in #1346
- chore(java): Remove redundant code by @LiangliangSui in #1349
- fix(go): fix comment error, should be 1-5 byte by @bowin in #1353
- chore(JavaScript): Fix JavaScript test CI by @theweipeng in #1355
- chore(JavaScript): fix test ci on early Node by @theweipeng in #1356
- chore(JavaScript): Fix using npm run build error by @LiangliangSui in #1357
- ci(JavaScript): JavaScript ci is ported from run_ci.sh to run_ci.py by @LiangliangSui in #1358
- feat(JavaScript): Support oneof by @theweipeng in htt...
v0.5.0-rc1
What's Changed
- [Java] Clear extRegistry.getClassCtx if generate serializer class failed by @chaokunyang in #1221
- [C++] Support optional fields/elements in RowEncoder by @PragmaTwice in #1223
- [JavaScript] Implements tuple serializer by @bytemain in #1216
- [Rust] Remove unnecessary abstraction by @theweipeng in #1225
- [Java] disable async compilation for graalvm by @chaokunyang in #1222
- [Java] Align string array to collection protocol v2 by @chaokunyang in #1228
- [Improve] add rust doc by @caicancai in #1226
- [JavaScript] Add more methods for BinaryReader by @bytemain in #1231
- [C++] Improve FormatTimePoint by removing sstream by @PragmaTwice in #1233
- [C++] Improve Status by using unique_ptr by @PragmaTwice in #1234
- [JavaScript] Add lint tools by @bytemain in #1232
- [Doc][Spec] fury java serialization spec by @chaokunyang in #1238
- [Doc] bump release version to 0.4.1 by @chaokunyang in #1242
- [Java] Remove guava part 2. by @nandakumar131 in #1244
- [C++] Support mapping types for RowEncodeTrait by @PragmaTwice in #1247
- Update apache license by @chaokunyang in #1246
- Rename to Apache Fury in README by @PragmaTwice in #1249
- [Java][Doc] enable requireClassRegistration in example by default by @chaokunyang in #1250
- chore: setup apache repo by @tisonkun in #1251
- chore: clear alipay refs by @tisonkun in #1252
- chore: add NOTICE and DISCLAIMER by @tisonkun in #1253
- Delete CODE_OF_CONDUCT.md by @pjfanning in #1255
- docs: polish CONTRIBUTING doc by @tisonkun in #1257
- Add collaborators to workaround unfinished apache ID procedure by @PragmaTwice in #1256
- chore: relocate Maven GAV and Java package by @tisonkun in #1259
- Add maven badge by @vesense in #1260
- Add slack channel to README by @PragmaTwice in #1261
- chore: reflect PPMC members set up by @tisonkun in #1262
- ci: Release Fury Java Snapshot by @tisonkun in #1264
- [DOC] doc sync stay consistent with the site by @theweipeng in #1266
- [Java] Format integration tests code by @chaokunyang in #1263
- [JavaScript] Improve tag write performance by @bytemain in #1241
- update fury java install by @chaokunyang in #1268
- [Java][Doc] Switch Option and Description column for better readability by @chaokunyang in #1267
- Update twitter id in README.md to ApacheFury by @chaokunyang in #1270
- [Java] Clean-up of tmp files created in CrossLanguageTest by @nandakumar131 in #1277
- [CODE HEADER] Remove all fury author tag by @chaokunyang in #1282
- [Java] Support registration in thread safe fury by @chaokunyang in #1280
- [JAVA] add guava license header by @pjfanning in #1283
- [JAVA] remove license header from MurmurHash3 by @pjfanning in #1284
- Update NOTICE to mention all the licenses for source files where code is borrowed from different project. by @nandakumar131 in #1285
- [Java] refine Collection util data structure (#1287) by @mof-dev-3 in #1288
- Update copyright date in NOTICE by @PragmaTwice in #1289
- [JavaScript] Implement the standard protocol by @theweipeng in #1286
- [Java] Fix fury benchmark jmh GPLV2 license conflict by @chaokunyang in #1272
- [JavaScript] compress numbers by @theweipeng in #1290
- chore: tidy text and improve branding by @tisonkun in #1292
- [Java] remove vague desc in drop-in replacement jdk serialization libs by @chaokunyang in #1291
- [CI] Add macos C++ build to ci.yml by @PragmaTwice in #1295
- [C++] Windows build support by @LiangliangSui in #1294
- [C++] Use python3 instead of python in bazel build by @PragmaTwice in #1297
- [C++] Remove unused function by @LiangliangSui in #1298
- Refine words and remove other org links in README by @PragmaTwice in #1307
- [Java] fix nested collection num elements by @chaokunyang in #1306
- Keep head metadata as is in docs by @PragmaTwice in #1311
- [MINOR] Update CODEOWNERS by @liuxiaocs7 in #1312
- Refine English writing about benchmark in README by @PragmaTwice in #1314
- [DOC] Refine build steps and wording in DEVELOPMENT by @PragmaTwice in #1315
- ci: add PR title lint following the conventional commits by @PragmaTwice in #1317
- chore: Update CODEOWNERS by @chaokunyang in #1316
- feat(javascript): Refactor & Compress Long by @theweipeng in #1313
- docs: Remove extra symbols by @caicancai in #1310
- perf(java): merge perftests into benchmark by @chaokunyang in #1318
- perf(java): rename fury-benchmark to benchmark by @chaokunyang in #1319
- feat(JavaScript): Implement Enum by @theweipeng in #1321
- chore(C++): Remove unused bazel rulers by @LiangliangSui in #1322
- feat(JavaScript): enhance performance 64bits number by @theweipeng in #1320
- ci(c++): Implement C++ CI scripts using python by @LiangliangSui in #1303
- fix(java): fix polymorphic array serialization by @chaokunyang in #1324
- chore(git): update .gitignore by @LiangliangSui in #1331
- feat(java): refine collection builder util by @chaokunyang in #1334
- chore(cpp): rename src to cpp by @chaokunyang in #1329
- chore(JavaScript): Drop optional chaining expression by @bytemain in #1338
- feat(java): refine collection builder util (#1334), fix collection init size typo by @mof-dev-3 in #1342
- fix(java): fix nested collection cast for scala/java by @chaokunyang in #1333
- feat(java): Specify JPMS module names by @mtf90 in #1343
- feat(JavaScript): Implement the collection protocol by @theweipeng in #1337
- fix(Rust): incorrect cast by @theweipeng in #1345
- feat(ci): Rust ci is ported from run_ci.sh to run_ci.py by @LiangliangSui in #1332
- fix(java): fix ClassLoader npe in loadOrGenCodecClass by @chaokunyang in #1346
- chore(java): Remove redundant code by @LiangliangSui in #1349
- fix(go): fix comment error, should be 1-5 byte by @bowin in #1353
- chore(JavaScript): Fix JavaScript test CI by @theweipeng in #1355
- chore(JavaScript): fix test ci on early Node by @theweipeng in #1356
- chore(JavaScript): Fix using npm run build error by @LiangliangSui in #1357
- ci(JavaScript): JavaScript ci is ported from run_ci.sh to run_ci.py by @LiangliangSui in #1358
- feat(JavaScript): Support oneof by @theweipeng in htt...
v0.4.1
What's Changed
- [Doc] Refine issue template by a yaml form by @chaokunyang in #1185
- [C++] Fix ownership problem for children writers by visitor by @PragmaTwice in #1193
- [C++] Remove useless fields and macro in logging by @PragmaTwice in #1195
- [Doc] add docs for java FuryBuilder #1188 by @mof-dev-3 in #1192
- [Rust] support row format by @wangweipeng2 in #1196
- [C++] Add RowEncoder wrapper to RowEncodeTrait by @PragmaTwice in #1200
- [Rust] Row support more types by @wangweipeng2 in #1202
- [Rust] Support row map by @wangweipeng2 in #1206
- [C++] update bazel version from 4.2 to 6.3.2 by @chaokunyang in #1204
- [JavaScript] Support partial record by @wangweipeng2 in #1208
- [Java] fix package access level class accessor jit by @chaokunyang in #1210
- [JavaScript] Fix register a description twice will get undefined serializer by @bytemain in #1211
- [C++] Support iterable types in RowEncodeTrait by @PragmaTwice in #1212
- [C++] Support iterable types for RowEncoder by @PragmaTwice in #1215
- [Python] Refine py register class method by @chaokunyang in #1218
- [Java] Clear extRegistry.getClassCtx if generate serializer class failed in #1221
New Contributors
Full Changelog: v0.4.0...v0.4.1
v0.4.0
Highlight
- [Java] Support Graalvm native image. The implementation will generate all serialization code at image build time, the runtime will be extremely fast, see fury graalvm usage doc
- [Java] Fury vs JDK benchmark on Graalvm native image
- [Scala] Serialization support for package scoped object
- [C++] Reflection support by macro/template programing
- [C++] Automatic row format encoder
What's Changed
- [Python] fix python release by @chaokunyang in #1125
- [Java] make unsafe offset compatible with graalvm by @chaokunyang in #1117
- [Scala] Fix scala package object JIT error by @chaokunyang in #1130
- [Java] Refine maven pom config by @chaokunyang in #1126
- [Rust] add rust building by @caicancai in #1129
- [C++] Remove useless overload of Writer::WriteString by @PragmaTwice in #1136
- [Rust] fix typo by @caicancai in #1133
- [Rust] add mesaage about rust ci by @caicancai in #1131
- [C++] Add move ctor/assign op to Status by @PragmaTwice in #1134
- [Rust] fix cargo test error by @wangweipeng2 in #1135
- [Rust] improve rust ci by @caicancai in #1138
- [Scala] Fix scala collection serialization nested in pojo by @chaokunyang in #1140
- [Java] make sting builder serializer codegen eager by @chaokunyang in #1141
- [Rust] fix rust ci bug by @caicancai in #1139
- [Java] support add static fields in fury codegen by @chaokunyang in #1147
- [C++] Add the basic row format serializer for C++ class types via reflection by @PragmaTwice in #1144
- [C++] Add duplicated fields detection in
FURY_FIELD_INFO
macro by @PragmaTwice in #1151 - [Java] support create serializer when register class by @chaokunyang in #1154
- [Java] Support graalvm native image by @chaokunyang in #1143
- [C++] Support string type in RowEncoder by @PragmaTwice in #1158
- [Scala] add graalvm support for scala singleton by @chaokunyang in #1159
- [Scala] Fix scala singleton map/collection serialization in struct by @chaokunyang in #1160
- [Java] add read resolve circular test suite by @chaokunyang in #1161
- [Java] Remove load arrow serializers by default by @chaokunyang in #1163
- [Java] Support thread safe fury for graalvm native image by @chaokunyang in #1164
- [Scala] Fix package object serialization in scala App by @chaokunyang in #1166
- [Java] add graalvm usage doc by @chaokunyang in #1168
- [C++] Split util.h to bit_util.h and time_util.h by @PragmaTwice in #1171
- [C++] Support cv-qualified types in row encoder by @PragmaTwice in #1172
- [C++] Add support for nested class types in row encoder by @PragmaTwice in #1173
- [Java] Add graalvm benchmark by @chaokunyang in #1178
- [Java] Fix string key serializer ref tracking by @chaokunyang in #1174
- [Java] Add graalvm benchmark test results by @chaokunyang in #1180
- [Scala] fix package object inaccessible from source code by @chaokunyang in #1181
Full Changelog: v0.3.1...v0.4.0