Releases: EsotericSoftware/kryo
kryo-5.0.0-RC5
This is the 5th release candidate of the new major version of Kryo (see also the RC1 release notes for major changes of v5).
This RC comes with several improvements over the previous RCs, e.g. there's now a completely self-contained, versioned artifact with zero dependencies for usage of Kryo in libraries.
The full list of changes from RC4 to RC5 can be found here.
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
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-RC5 to RC4:
kryo-5.0.0-RC4
This is a hotfix release over RC3, just removing a forgotten println
. For the rest see the release notes for RC3
kryo-5.0.0-RC3
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:
kryo-5.0.0-RC2
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:
kryo-5.0.0-RC1
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.
kryo-4.0.2
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
kryo-4.0.1
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
kryo-4.0.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 theFieldSerializer
for generic fields, therefore generic classes serialized with Kryo 3 andFieldSerializer
cannot be deserialized with Kryo 4 by default. To deserialize such Kryo 3 serialized generic classes you have to setkryo.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 withkryo.getFieldSerializerConfig().setOptimizedGenerics(true);
) - Unsafe-based IO: No (format for generic fields written by
FieldSerializer
changed, compatibility can be achieved withkryo.getFieldSerializerConfig().setOptimizedGenerics(true);
)
- Standard IO: No (format for generic fields written by
- Binary compatible - No (Details)
- Source compatible - No (Details)
kryo-3.0.3
See CHANGES
kryo-3.0.2
See CHANGES