Releases: MessagePack-CSharp/MessagePack-CSharp
Releases · MessagePack-CSharp/MessagePack-CSharp
v1.9.11
v2.1.80
Changes:
🔒 Security fixes are included in this release. Read more in our security advisory.
Fixes:
- #782: Strings with UTF8 multi-byte characters are corrupted in writing on mono
- #774: Apply LZ4BlockArray to
ConvertToJson
- #651: Typeless decimal serialized as string
- #425: TypelessContractlessStandardResolver should preserve various integer types
Enhancements:
- #790: Add the leaveOpen flag to MessagePackStreamReader
- #788: Respect EnumMemberAttribute when serializing enum values as strings
- #253: Default resolver deserializes ICollection as T[]
- #771: Add WriteBinHeader and WriteStringHeader methods to MessagePackWriter
See More
- #767: Add
MessagePackReader.TryRead*Header
methods - #726: Add MessagePackStreamReader.ReadArrayAsync
- #757: Wrap all exceptions thrown from ConvertToJson in MessagePackSerializationException
- #735: Make MessagePackReader.ReadDateTime(ExtensionHeader) public
Others:
- #795: avoid ReadUnaligned on long, ulong, double in Android device
- #789: Respect EnumMemberAttribute when serializing enum values as strings
- #787: Fix mpc formatter name for Queue
- #786: Fix WriteString issue on mono
- #784: improve BigInteger serialize in .NET Core
- #781: Fix enum serialization in unity
- #779: mpc, does not load does't exists metadata
- #768: Bring back serialization of members with explicit attributes
- #775: Fix leaked use fullnamespace in mpc
- #777: Improve performance of standard decimal serialization by using Utf8Formatter
- #778: Deserialize mutable collection interfaces with mutable concrete types
- #769: Add analyzers to call out use of static options
- #279: Add MessagePackBinary.WriteBinHeader
- #763: mpc, replace MicroBatchFramework to ConsoleAppFramework
- #770: Package and toolset updates
- #766: Readonly attributes and getters with Key() annotation are ignored by SerializeObject()
- #762: Update Generated.cs
- #759: Document subtle changes in serialization from v1.x to v2.x
- #761: Merge v2.0 to master
- #754: Simplify CompositeResolver.Create
- #747: Fix sample code snippets use of new overload
- #745: README suggests use of non-existent Serialize overloads
- #741: Add a prefix to the property names to avoid name conflicts.
- #742: Resolve NuGet dependency in mpc
- #740: FarmHash performance improvement
- #739: Sort SerializationInfo
- #737: Document v1.x compatible compression in README
- #736: LZ4MessagePackSerializer
- #734: Document
TypelessFormatter.BindToType
change - #732: Add tests to repro type loss for Guid and Decimal
- #731: Hard to switch between DateTime and user extensions in MessagePackReader
- #733: 'TypelessFormatter' does not contain a definition for 'BindToType' after updating to 2.0.323
- #725: Merge v2.0 into master
- #717: Preserve types of integers when using typeless resolver
This list of changes was auto generated.
v1.9.3
Changes
🔒 Security fixes are included in this release. Read more in our security advisory.
No other changes are included in this release relative to v1.8
v2.0.335
Changes:
Fixes:
- #764: MessagePackStreamReader throws when stream returns a block that ends just before array or map element
- #760: Fix API doc on MessagePackWriter.WriteInt64
- #753: Fix duplicate header read in
ConvertToJson
in ext format - #746: ContractlessStandardResolver fails to serialize
ReadOnlySequence<byte>
that it deserialized
Others:
- #765: Fix MessagePackStreamReader to not throw given certain message boundaries
- #749: Copy byte[] during contractless deserialization
This list of changes was auto generated.
v2.0.323
Changes:
Upgrading from 1.x? See our migration doc.
Fixes:
- #710: Causes infinite loop when the IBufferWriter returns zerospan in sizehint=0
- #712: ByteArraySegmentFormatter returns inner sequence directly instead of copying
- #706: MPC should normalize directory separators in paths read from csproj
Enhancements:
- #720: MessagePack.AspNetCoreMvcFormatter supports AspNetCore3 BodyWriter
- #718: Add
IBufferWriter<byte>
overload to NonGeneric API - #711: Could MessagePackWriter.GetSpan/Advance be public?
- #699: Add MessagePackStreamReader
Others:
See More
- #730: Prepare for stable 2.0 release
- #729: Fix mpc and more details to ReadMe
- #728: ReadMe fix(mpc, Unity)
- #722: Add assembly locations for wellknown generic types to mpc
- #719: Add NonGeneric API for Serialize with IBufferWriter and deserialize with ReadOnlySequence
- #715: Avoid infinite loop when IBufferWriter.GetMemory returns empty memory
- #714: Make MessagePackWriter's GetSpan and Advance methods public
- #713: Always copy arrays from the underlying sequence
- #485: Enable MessagePackWriter.WriteRaw(ReadOnlySpan) to accept a stackalloc span
- #707: Convert backslashes to slashes in csproj for mpc off Windows
- #698: StaticCompositeResolver.Register -> StaticCompositeResolver.Instance.…
- #692: Update SerializerBenchmark
- #696: Set release notes link to match release tag
- #694: Compression Document
This list of changes was auto generated.
v2.0.299-rc
Changes:
Fixes:
- #680: Allocate too small buffer each times in LZ4 serialization
Enhancements:
- #690: Fix CreatePeekReader so it's truly equivalent to the original
- #681: Add Compression.LZ4ContiguousBlock and implementation
- #677: API support for multiple compression schemes
Others:
- #695: Avoid double-enumeration when serializing unknown collection types
- #693: Bring back -rc suffix
- #691: Replace all creation of Sequence except in SequencePool
See More
- #688: new Sequence should not use because that allocate many small buffers.
- #687: Remove formatter instance cache from TypelessFormatter
- #689: Avoid the large object heap (LOH) for LZ4 buffers
- #686: Remove private resolver list from DynamicObjectTypeFallbackFormatter
- #685: Use recycled Sequence for LZ4 compression
- #679: Why does DynamicObjectTypeFallbackFormatter have a private collection of resolvers?
- #682: Update documentation for removal of LZ4Standard
- #676: Documentation errors
- #673: Remove explicit MessagePack.Annotations dependency from extension packages
- #674: Document location of our CI feed
This list of changes was auto generated.
API diff:
diff --git a/src/MessagePack/PublicAPI.Unshipped.txt b/src/MessagePack/PublicAPI.Unshipped.txt
index 275f4c3..69cbbaf 100644
-MessagePack.Formatters.DynamicObjectTypeFallbackFormatter.DynamicObjectTypeFallbackFormatter(params MessagePack.IFormatterResolver[] innerResolvers) -> void
-MessagePack.Formatters.TypelessFormatter.TypelessFormatter() -> void
+MessagePack.MessagePackCompression
+MessagePack.MessagePackCompression.Lz4Block = 1 -> MessagePack.MessagePackCompression
+MessagePack.MessagePackCompression.Lz4BlockArray = 2 -> MessagePack.MessagePackCompression
+MessagePack.MessagePackCompression.None = 0 -> MessagePack.MessagePackCompression
-MessagePack.MessagePackSerializerOptions.MessagePackSerializerOptions(MessagePack.IFormatterResolver resolver, bool useLZ4Compression = false) -> void
+MessagePack.MessagePackSerializerOptions.Compression.get -> MessagePack.MessagePackCompression
+MessagePack.MessagePackSerializerOptions.MessagePackSerializerOptions(MessagePack.IFormatterResolver resolver) -> void
-MessagePack.MessagePackSerializerOptions.UseLZ4Compression.get -> bool
-MessagePack.MessagePackSerializerOptions.WithLZ4Compression(bool useLZ4Compression = true) -> MessagePack.MessagePackSerializerOptions
+MessagePack.MessagePackSerializerOptions.WithCompression(MessagePack.MessagePackCompression compression) -> MessagePack.MessagePackSerializerOptions
-MessagePack.Resolvers.TypelessObjectResolver.Formatter.get -> MessagePack.Formatters.TypelessFormatter
-MessagePack.Resolvers.TypelessObjectResolver.Formatter.set -> void
-MessagePack.Resolvers.TypelessObjectResolver.TypelessObjectResolver() -> void
-static MessagePack.MessagePackSerializerOptions.LZ4Standard.get -> MessagePack.MessagePackSerializerOptions
+static readonly MessagePack.Formatters.DynamicObjectTypeFallbackFormatter.Instance -> MessagePack.Formatters.IMessagePackFormatter<object>
+static readonly MessagePack.Formatters.TypelessFormatter.Instance -> MessagePack.Formatters.IMessagePackFormatter<object>
-static readonly MessagePack.Resolvers.ContractlessStandardResolver.ObjectFallbackFormatter -> MessagePack.Formatters.IMessagePackFormatter<object>
-static readonly MessagePack.Resolvers.ContractlessStandardResolverAllowPrivate.ObjectFallbackFormatter -> MessagePack.Formatters.IMessagePackFormatter<object>
-static readonly MessagePack.Resolvers.StandardResolver.ObjectFallbackFormatter -> MessagePack.Formatters.IMessagePackFormatter<object>
-static readonly MessagePack.Resolvers.StandardResolverAllowPrivate.ObjectFallbackFormatter -> MessagePack.Formatters.IMessagePackFormatter<object>
+static readonly MessagePack.Resolvers.TypelessObjectResolver.Instance -> MessagePack.IFormatterResolver
v2.0.270-rc
Changes:
Fixes:
- #662: Failed to deserialize 2 consecutive messages from a Stream using NonGeneric API in v1.8.80
- #499: MVC output Formatter does not check correctly for contenttype
- #567: Eliminate remaining mutable statics
- #562: Overlap Buffer.MemoryCopy causes unknown error
Enhancements:
- #648: Move extension type codes
- #649: Add v1->v2 migration doc
- #632: Add MessagePackReader.ReadRaw()
- #608: Offer MessagePackSerializerOptions to collection deserializers
See More
- #609: Add fast path for reading consecutive strings/byte arrays
- #513: v2 StringKey(Contractless) deserialization is slow
- #603: Add CancellationToken to reader/writer structs
- #598: Take CancellationToken parameter in serialize/deserialize methods
- #582: Improve compatibility with existing types
- #594: Add CancellationToken parameters to synchronous Stream (de)serialize methods
- #595: Apply vs-threading analyzers and fix issues they found
- #444: TypelessFormatter blacklist handling is insufficient
- #576: [Request] NonGeneric Serialize method with the MessagePackWriter
- #574: Don't convert Span to array before pinning
Others:
- #669: Fix nuget package ID for mpc tool back to
MessagePack.Generator
- #670: Include asmdef in package exporter
- #667: Improve Readme
- #668: Collect all mpc executables under one artifact
- #661: Add MessagePackWindow and some fixes
- #663: Stream deserialization fixes
- #657: Throw msg exception before build nonpublic formatter.
- #659: fix nugetpackagepath typo in Mac/Linux
- #655: Add substitute formatters and resolvers
- #658: Downgrade to System.Collections.Immutable 1.5.0
- #654: System.Collections.Immutable 1.6.0 breaks Azure Functions
- #646: Fix StandardResolverAllowPrivate exception
- #653: use Microsoft.Extensions.FileSystemGlobbing to mpc
- #652: Reduce number of build tasks
- #650: Pack MPC tool as build artifact
- #644: Move MessagePack.Internal from src to sandbox
- #643: Remove Nerdbank.Streams dependency from MessagePack.Internal project
- #642: Fix-ups to get UWP test project building
- #639: Remove UniversalCodeGenerator
- #637: Adjust System.Runtime.CompilerServices.Unsafe version
- #631: Build -rc versioned packages
- #636: Remove Nerdbank.Streams again
- #633: Ensure that only documented exceptions are thrown
- #635: Fix duplicate relative path syntax trees
- #628: Improve mpc
- #627: Throw MessagePackSerializationException instead of IOE
- #626: Fix T4 generation in tests
- #623: Merge v1.8 to master
- #620: "Fix" build.sh script to return failure exit codes when Unity build fails
- #621: Get builds and tests running on non-Windows OS
- #592: Remove Nerdbank.Streams dependency
- #616: Pack nupkg files to common directory
- #613: Define MessagePackSerializationException base class
- #611: Update package references
- #612: Update .NET Core SDK to 3.0.100
- #591: Unity IL2CPP and New CodeGenerator
- #602: Add xml doc comment to IFormatterResolver
- #601: Fix T4 code generation
- #596: Add public API tracking files
- #333: Detect an error when more than one member has the same key
- #322: Made exception public to get ability to handle it properly on client side
- #250: added information about compressing binary data
- #312: Fixed sample code compilation error in README
- #550: Avoid a call to ReadOnlySpan.Slice
- #589: Remove mutable fields/properties from TypelessFormatter
- #564: Require checked in unsafe cast
- #577: Add non-generic serialize methods that take MessagePackReader/Writer
- #569: Remove ByteArrayComparer
- #580: Add issue templates
- #575: Remove unused ToArray() copy
- #565: Unity test improv
- #542: Unity fix for v2
- #553: Fix intra-document links in README
- #543: Rename UnsafeNativeResolver to NativeGuidResolver, NativeDecimalResolver
- #549: Remove FloatBits
- #539: BufferWriter should reduce call Slice
- #537: Remove dead code from main library
- #533: Make default options for MessagePackSerializer mutable
- #536: Turn off SA1005 and SA1515 analyzers
- #509: Disable some lint options
- #528: Choose most matched constructor
- #530: Allow private constructors when using ctor attribute
- #532: Fix DynamicCodeDumper
- #527: Remove MessagePackWriter.WriteFixedArrayHeaderUnsafe
- #526: Optimize for MemoryStream Deserialize
- #525: prefer var
- #506: What reason v2 removes MaxFixMapCount optimization?
- #524: Merge v1.8 to master
- #519: Make CompositeResolver faster and immutable
- #523: Support null strings and byte[] in MessagePackReader/Writer
- #522: Allow negative extension headers in MessagePackWriter
- #520: Do not convert Unspecified DateTime
- #516: Make using old spec more accessible
- #517: Do not skip resolvers for read/write of string
- #83: DateTime Kind is UTC but it should be unspecified
- #518: Use UNITY_2018_3_OR_NEWER for #if instead of UNITY_STANDALONE
- #502: CompositeResolver(v2) is slow.
- #507: UNITY_STANDALONE in v2 is not a valid define on Unity
- #505: Please remove optimize on string read/write.
- #504: Where is the OldSpecResolver on v2?
- #511: MessagePackWriter.WriteString should support null instead of throw
This list of changes was auto generated.
v1.8.80
v1.8.74
v1.7.3.7 (security fix)
This servicing release fixes a security issue with the deserializer to prevent unbounded memory allocations from relatively small MessagePack payloads.