Skip to content

Releases: MessagePack-CSharp/MessagePack-CSharp

v1.9.11

10 Feb 14:07
6cbd819
Compare
Choose a tag to compare

Changes:

Fixes:

#810: MessagePackSecurity.GetEqualityComparer returns null on copied instances

Enhancements:

#813: Add secure hashing for enums with backing integers of 32-bit or less

This list of changes was auto generated.

v2.1.80

31 Jan 02:16
6b89b9a
Compare
Choose a tag to compare

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

31 Jan 02:16
129239b
Compare
Choose a tag to compare

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

10 Jan 23:49
1efbae4
Compare
Choose a tag to compare

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

16 Dec 14:35
7f591ef
Compare
Choose a tag to compare

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

30 Nov 23:46
1cc149c
Compare
Choose a tag to compare
v2.0.299-rc Pre-release
Pre-release

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

25 Nov 14:01
8ddfe63
Compare
Choose a tag to compare
v2.0.270-rc Pre-release
Pre-release

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

20 Nov 14:39
c7a4f10
Compare
Choose a tag to compare
  • Adjust assembly version from 1.8.74.32478 to simply 1.8.0.0 (#604)
  • Update System.Threading.Tasks.Extensions dependency to 4.5.3 (#610)
  • Publish symbols in snupkg archives to nuget.org (#624)

v1.8.74

15 Oct 16:15
Compare
Choose a tag to compare

Very few changes since 1.7, but now building from a more serviceable branch.

v1.7.3.7 (security fix)

14 May 17:30
25774ab
Compare
Choose a tag to compare

This servicing release fixes a security issue with the deserializer to prevent unbounded memory allocations from relatively small MessagePack payloads.