All Versions
18
Latest Version
Avg Release Cycle
143 days
Latest Release
796 days ago

Changelog History
Page 2

  • v5.0.0-RC2 Changes

    February 05, 2019

    ๐Ÿš€ 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)
  • v5.0.0-RC1 Changes

    June 19, 2018

    ๐Ÿš€ 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)
  • v4.0.2 Changes

    March 20, 2018

    ๐Ÿš€ 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)
  • v4.0.1 Changes

    July 23, 2017

    ๐Ÿš€ 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)
    • 0๏ธโƒฃ #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)
  • v4.0.0 Changes

    July 05, 2016
    • 0๏ธโƒฃ [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)
    • 0๏ธโƒฃ #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)
  • v3.0.3 Changes

    July 26, 2015

    ๐Ÿ‘€ See CHANGES

  • v3.0.2 Changes

    June 17, 2015

    ๐Ÿ‘€ See CHANGES

  • v2.21.1

    February 02, 2016