Skip to content

kryo-5.4.0

Compare
Choose a tag to compare
@theigl theigl released this 30 Dec 10:53
· 216 commits to master since this release

This is a maintenance release coming with bug fixes and performance improvements.

The most notable change is performance improvements for record serialization (#927) by caching access to components, getters and constructors. The new implementation is roughly 20x faster.

Several PRs improve Kryo's compatibility with JDK 17+ (#930, #932, #933).

#923 Add helper method to register serializers for java.util.ImmutableCollections (#933)
#885 Delay access to constructor and methods for DirectBuffers until first use (#932)
#885 Add additional safe serializers for commonly used JDK classes (#930)
#884 Cache components, getters and constructors in RecordSerializer (#927)
#922 Fall back to default class resolution if class cannot be loaded with provided class loader (#926)
#920 Align ByteBufferOutput.writeAscii with implementation in Output (#921)
#889 Serializer for java.sql.Timestamp which preserves nanoseconds (#890)
#884 Fix eclipse project setup: Add JUnit 5, ByteBuddy (#887)

Other Tasks:

  • Improve tests for JDK 17 (#886)
  • Upgrade GitHub actions (#925)
  • Upgrade Objenesis to 3.3

The full list of changes can be found here.

Many thanks to all contributors!

Upgrade Notes

For migration from previous major versions please check out the migration guide. We're asking the community to help and contribute this part: please edit the migration wiki page as you encounter any information or issues that might help others.

Compatibility

  • Serialization compatible
    • Standard IO: Yes
    • Unsafe-based IO: Yes
  • Binary compatible - Yes (Details)
  • Source compatible - Yes (Details)