Releases: irmen/Serpent
Release 1.23 (python + java)
python:
- tighter limit on max recursion level to avoid RecursionError even better
java:
- now requires Java 8 (JDK 1.8) minimum to compile & run!
- Java 9 compatibility added.
release 1.22
- python 3.4's enum.Enum is now also accepted as immutable dict key or set element type.
- register_class is now preserving registration order so you can depend on correct and deterministic precedence.
release 1.20
Added checks in the serializer that prevents generating data that cannot be deserialized later.
The problem was that serpent allowed a non-hashable / non-immutable type as a dict key or set element.
This is now no longer allowed and an error is thrown if you try to serialize such a data structure.
release 1.19, python only
- can now serialize and deserialize from buffer/memoryview types directly
- improved test for \x00 bytes in serialized input data
- fixed some jython and ironpython compatibility issues
- pypy3 added to test suite
release 1.18, python, java, .net
All three (Python, Java, .NET):
- CRITICAL FIX: Encoding/serializing unicode strings is now done by
repr
itself instead of custom code. This solves the issue that previously invalid serialized data which was unparsable, could have been generated from unicode strings. - Added Serializer.MaximumLevel to avoid too deep recursion resulting in stack overflow errors.
- Serializer.Maximumlevel set to a reasonable value (500, or less if your python's recursionlimit is small)
Python:
- Improved Jython compatibility (built-in support for several Jython types that were previously unserializable such as PyByteArray).
- Better error when invalid serialized data is used (containing 0-bytes for instance)
- Improved serialization performance.
release 1.17, python, java, .net
Release 1.17.
All three (Python, Java, .NET):
- CRITICAL FIX: Encoding/serializing unicode strings is now done by
repr
itself instead of custom code. This solves the issue that previously invalid serialized data which was unparsable, could have been generated from unicode strings. - Added Serializer.MaximumLevel to avoid too deep recursion resulting in stack overflow errors.
Python:
- Improved Jython compatibility (built-in support for several Jython types that were previously unserializable such as PyByteArray).
- Better error when invalid serialized data is used (containing 0-bytes for instance)
release 1.16, python, java, .net
❗️ critical fix: fixed float serialization from str to repr, could cause float precision loss on older Python versions (Python library)
❗️ critical fix: fixed errors in complex number parser, it could crash on complex numbers containing float parts (java + .net library)
- supports serializing python enum types (Python 3.4+)
release 1.15
Python:
- dropped support for python 2.6 and 3.2
- added serpent.tobytes utility method to decode base-64 serpent encoded bytearrays
Java:
- now requires Java7 (jdk 1.7+)
- added Parser.toBytes utility method to decode base-64 serpent encoded bytearrays
.NET/C#:
- added Parser.ToBytes utility method to decode base-64 serpent encoded bytearrays
release 1.14 for python
Added built-in support to serialize the datetime.date type, which was somehow overlooked because the other types in that module were supported already.
This is a python version only release.
release 1.13 for .NET and Java
Custom class converters now apply to inheritance tree rather than just one specific class.
This is a java and .NET only release, the Python version is unchanged.