Skip to content

Releases: EsotericSoftware/kryo

kryo-5.0.0-RC3

08 Apr 20:01
Compare
Choose a tag to compare

This is the third release candidate of the new major version of Kryo, which fixes many issues and makes many long awaited improvements (see also the RC1 release notes).

This RC comes with fixes and approvements over the previous RCs: here's what changed from RC2 to RC3

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.

This RC may be the last one asking for feedback before 5.0.0. If you think you found a bug, please submit an issue. If you think something should be changed before 5.0.0 is released, please post on the mailing list.

Compatibility

Due to big changes 5.0.0 is both source/binary incompatible and serialization incompatible to previous major versions - for details see the RC1 compatibility report.

Compatibility of 5.0.0-RC3 to RC2:

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

kryo-5.0.0-RC2

05 Feb 21:53
Compare
Choose a tag to compare

This is the second release candidate of the new major version of Kryo, which fixes many issues and makes many long awaited improvements (see also the RC1 release notes).

The second RC comes with fixes and approvements over the first RC based on your valuable feedback: here's what changed from RC1 to RC2

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.

This RC may be the last one asking for feedback before 5.0.0. If you think you found a bug, please submit an issue. If you think something should be changed before 5.0.0 is released, please post on the mailing list.

Compatibility

Due to big changes 5.0.0 is both source/binary incompatible and serialization incompatible to previous major versions - for details see the RC1 compatibility report.

Compatibility of 5.0.0-RC2 to RC1:

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

kryo-5.0.0-RC1

19 Jun 07:44
Compare
Choose a tag to compare

This is the first release candidate of the new major version of Kryo, which fixes many issues and makes many long awaited improvements.

For details see this mailing list thread or check out the changes from 4.0.2 to 5.0.0-RC1.

So far there is only a minimal 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.

With the release candidate we're looking for feedback. If you think you found a bug, please submit an issue. If you think something should be changed before 5.0.0 is released, please post on the mailing list.

Compatibility

Due to big changes it is both source/binary incompatible and serialization incompatible.

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

kryo-4.0.2

20 Mar 21:12
Compare
Choose a tag to compare

This is a maintenance release coming with fixes and improvements.

  • #567: Use public member instead of private field to resolve immutability for serializer (bceef26)
  • Fix #558, #549: IdentityObjectIntMap.clear taking more time - Realloc instead of clearing large maps (77935c6)
  • Fix #539, #554: Fix crash when removing multiple fields with CompatibleFieldSerializer (56fb1a1)
  • #530: Fix #529 Support serializing the Enum class object (033d659)

Many thanks to all contributors!

Compatibility

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

kryo-4.0.1

23 Jul 22:15
Compare
Choose a tag to compare

This is a maintenance release coming with fixes and improvements.

  • #527: Add documentation on very large object graphs (67a3499)
  • #516: Use relatively safe max size of java array (389d33a)
  • #521: Use chunked encoding for TaggedFieldSerializer forward compatibility (fixes #442), replaces ignoreUnknownTags with skipUnknownTags, use chunked encoding (6dc6aa5)
  • Fix #500: Push java source/target version to 1.7 (c1ff83c)
  • Deprecate Util.isAndroid, superseded by the final Util.IS_ANDROID (64d7784)
  • #514: Fix warning on instantiate object on Android N+ - update Objenesis to the latest version 2.5.1 (4050fc9, 6040efd)
  • #520: Correctly deserialize objects when fields are added to a Class with enough fields to trigger binary search in CompatibleFieldSerializer (d31e2bf)
  • #518: error message for problems with anonymous classes (0eb7b71)
  • #509: Clarify default used registrations (75a41a6)
  • #441: Check for overlapping tags. (763ce88)
  • Fix #503: writeAscii_slow should be able to write at least one byte into the output buffer. (c3ed14c)
  • #486: Fix IdentityMap constructor (968c240)
  • #483: Override ObjectInputStream ClassLoader (19a6b5e)
  • #465: Fix growing ByteBufferOutput while writing varint (e721a44)
  • Fix #450: Update to the latest clirr-maven-plugin (6b8cb36)

Many thanks to all contributors!

Compatibility

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

kryo-4.0.0

05 Jul 23:31
Compare
Choose a tag to compare
  • [BREAKING] Generics handling is more robust now, the former optimization for smaller size (but increased serialization time) is now optional and disabled by default.

    Important: This change breaks the serialization format of the FieldSerializer for generic fields, therefore generic classes serialized with Kryo 3 and FieldSerializer cannot be deserialized with Kryo 4 by default. To deserialize such Kryo 3 serialized generic classes you have to set kryo.getFieldSerializerConfig().setOptimizedGenerics(true);!

    For details see #433: Disable the optimization of generics serialization and provide an API for enabling/disabling it (9923d05).

    This improves/fixes #377 "Kryo does not correctly support parameterized type hierarchy", #384 "ClassCastException When Writing a Map After Previously Reading a Map with Different Generic Type"
  • #424 Fixed (Compatible)FieldSerializer inheritance issue (5a7b7c5)
  • Update reflectasm to latest version, reduction of synchronization (132456e, d77c752)
  • #352 Add forward compatibility to TaggedFieldSerializer (93bff2d)
  • #418 Add checks to setting output buffer and throw IllegalArgumentException when setting a buffer size greater than the max buffer size (d57e00c)
  • #417 Make FieldSerializer.serializeTransient usable (8aae38d)
  • [BREAKING] #415 Make Closure public, moving it to ClosureSerializer (bf80397, 6c402d9)
    Fixes #299 "Can't register ClosureSerializer"
  • #414 Introduce FieldSerializerConfig to encapsulate config in Kryo (4a47981)
  • Fix #412: Add default serializer for java.net.URL (c10fd76)
  • #404 Use system property to detect Android (c238f97)
  • #396 Adds Charset serializer, also set as default serializer (d7e924b)
    Resolves #364 "Few of the java Charsets classes from rt.jar can not be deserialized"
  • #395 Adds support for java 8 java.time.* classes (aff0689)
  • [BREAKING] #392 Move Generics{,Resolver} to serializers, reduce public api (e22ffb8)
  • #400 Modified utility hash maps to gracefully handle very large number of entries. (2b8e6fd)
    Resolves #382 "Kryo breaks down while serializing genomic data"
  • Adds serializers for java8 Optional{Int,Long,Double} (fb65ee9)
  • #362 Add java8 support and serializer for java.util.Optional (12229ca)
  • #393 Fix #389 revert ByteOrder on overflow in require during writeVar_() during writeVar_() (7d840a0)
  • #394 Fix positioning and order updates in ByteBufferInput and ByteBufferOutput (88f5875)
  • #388 Resolve #386: Automatically test serialization compatibility (c904c7e)
  • #375 Fix #370 copyTransient is not global (8414444, 481ddf4, 1ada47d)
  • #368) Try to load classes with fallback that uses current ClassLoader. (8dee484)
  • Update objenesis to 2.2 (ba67801)
  • #359 Use binary search to find field in CompatibleFieldSerializer for object with lots of fields (8678e50)
  • Fixed #346 Issue resizing UnsafeMemoryOutput on OSX 10.10.5 (50d1a6f)
  • Fixed bug #340 KryoException: Encountered unregistered class ID: <negative_number> (2fdf64e)
  • #344 Propagate flush to underlying stream (b3d6bda)
  • #342 Prevent creation of cyclic Generics stack when serializing specific generics object trees
  • #337/#338 ByteBufferInputStream violates InputStream contract (cf06241)
  • #297 Warn unregistered classes option (fd7d1b2)

Here's the list of all commits since 3.0.3

And most importantly; many thanks to all contributors!

Compatibility

  • Serialization compatible
    • Standard IO: No (format for generic fields written by FieldSerializer changed, compatibility can be achieved with kryo.getFieldSerializerConfig().setOptimizedGenerics(true);)
    • Unsafe-based IO: No (format for generic fields written by FieldSerializer changed, compatibility can be achieved with kryo.getFieldSerializerConfig().setOptimizedGenerics(true);)
  • Binary compatible - No (Details)
  • Source compatible - No (Details)

kryo-3.0.3

26 Jul 22:04
Compare
Choose a tag to compare

kryo-3.0.2

17 Jun 19:45
Compare
Choose a tag to compare

kryo-3.0.1

24 Mar 23:22
Compare
Choose a tag to compare

kryo-3.0.0

02 Oct 16:23
Compare
Choose a tag to compare