Msgpack-Cli v0.9.0 Release Notes

Release Date: 2017-08-26 // over 6 years ago
  • ๐Ÿš€ This including important bug fixes and some performance improvements. Following note includes features which were released in 0.9.0 previews.

    ๐Ÿ†• NEW FEATURES

    • Enum name transformation via SerializationContext.EnumSerializationOptions.NameTransformer.
      Built in transformer is placed in EnumTransoformers.
      Issue #184.
    • ๐Ÿ‘ Polymorphic attributes now supports type qualification. Issue #171.
    • โš™ Runtime type polymorphism now supports name based type verification. This feature allows to prevent loading malicious or unknown types ibefore assembly loading.
    • Asymmetric serializers. You can generate "pack only" serializer when you set SerializationContext.CompabilityOptions.AllowAsymmetricSerializer to true. #68.
    • ๐Ÿ‘ Built in serializer for System.Text.StringBuilder now supports UnpackTo.
    • โž• Add serialization to/from MessagePackObject as extension methods of MessagePackSerializer and MessagePackSerializer. Issue #90
    • ๐Ÿ‘‰ Users of serializer code generator API can specify TextWriter to output. This may improve tooling chain.
    • ๐Ÿ‘‰ Users of serializer code generator API can suppress [DebuggerNonUserCode] attribute to enable debugger step in.
    • SerializerRepository API now expose ContainsFor and GetRegisteredSerializers methods to investigate registered serializers.
    • SerializationContext.DisablePrivilegedAccess for restricted environment like Silverlight to select between granting permission or relinquish non-public access.
    • ๐Ÿ— UWP build is now included.
    • ๐Ÿ›  ByteArrayPacker/ByteArrayUnpacker. They are suitable for fixed pattern serialization/deserialization.
    • Fast mode of unpacker which omits nested collection management. This option can be disabled with setting UnpackerOptions.ValidationLevel to ValidationLevel.Collection.

    ๐Ÿ‘Œ IMPROVEMENTS

    • Byte array based serialization API now uses ByteArrayPacker/ByteArrayUnpacker, improves about 40% faster than Stream based.
    • Deserialization now uses ValidationLevel.None, improves about 30% faster than validating one.
    • ๐ŸŽ Packer/Unpacker performance improvements about 10-20%. As a result, new byte array "fast" unpacker is about 3x faster than previous unpacker.

    ๐Ÿ› BUG FIXES

    • ๐Ÿ›  Fix nuspec to prevent old NuGet clients which do not support .NET Standard TFMs. Issue #177.
    • The generated code for the type which has Tuple typed member uses old PackHelper API.
    • ๐Ÿ›  Fix struct deserialization. Issue #189. Thank you @samcragg!
    • ๐Ÿ›  Fix asynchronous packing is not be emitted correctly. Issue #201
    • ๐Ÿ›  Fix SerializerCodeGenerator does not handle collections correctly for IsRecursive = true. Issue #203
    • ๐Ÿ›  Fix extra field causes IndexOutOfBoundException when reflection based serializers are used. Issue #199
    • ๐Ÿ›  Fix some built-in serializers throws InvalidOperationException instead of SerializationException for type errors. Issue #204
    • ๐Ÿ›  Fix a combination of readonly members and collection members incorrect code generation when the type also have deserialization constructor. Issue #207.
    • ๐Ÿ›  Fix built-in collection serializers such as List serializer causes SecurityException when the program run in restricted environment like Silverlight. Issue #205.
    • ๐Ÿ›  Fix null items of complex type in List or Dictionary<TKey, TValue> will not be deserialized as null. Issue #211. (from 0.8.1)
    • ๐Ÿ›  Fix types which implement IPackable and IUnpackable but do not have any members cannot be serialized. Issue #202
    • ๐Ÿ›  Fix Windows Native build error. Issue #206.
    • ๐Ÿ›  Fix constructor deserialization fails if the constructor parameters order is not lexical. Issue #233
    • ๐Ÿ›  Fix asynchronous multi dimensional array deserialization corruption.
    • ๐Ÿ›  Fix enum serialization throws NullReferenceException in Unity. Issue #215.
    • ๐Ÿ›  Fix MessagePackSerializer.Capability does not work correctly in Unity.
    • ๐Ÿ›  Fix polymorphic serializer error in Unity.