Releases: MessagePack-CSharp/MessagePack-CSharp
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.
Ver 1.7.3.6
This release is only for code generator(mpc) fix.
for .NET, .NET Standard runtime, please use 1.7.3.
for Unity runtime, please use 1.7.3.5.
- support linux and mac with legacy csproj #357, thanks @itn3000
- show Type.FullName when code generation failed
- return error code(1) instead of crash when code geneation failed
Note:
mpc requires dotnet core runtime and msbuild(to support legacy csproj, on linux/osx, you can use mono msbuild).
Ver 1.7.3.5
This release is only for unity fix.
- Support .NET Standard 2.0 (NET Standard 2.0 can't use dynamic code generation so requires mpc code generation).
- New mpc(
UniversalCodeGenerator.zip
- MessagePack Compiler) binary supportswin-x64
,linux-x64
,osx-x64
.
Note:
Currently new mpc can not generate from legacy csproj(.NET 4.x, Unity) in linux and osx.
Please use windows or use new csproj(.NET Core).
Details is here. #355
Ver 1.7.3
- Add TypelessFormatter.BindToType #184, thanks @valeriob
- Add support .NET Standard 1.6 #185
- Fix can not serialize byte[][]
- Fix set/capacity bug in MessagePackBinary.ReadMessageBlockFromStreamCore #151, thanks @opsidjflksdf
- In Unity and not AOT env, DynamicCodeGeneration works same as standard .NET
- Threadsafe, ModuleBuilder.DefineType(for mono) #161
- Fix mpc.exe pragma warning #156,
- for Unity, builtin resolver supports new types
AnimationCurve
,Keyframe
,Matrix4x4
,Gradient
,Color32
,RectOffset
,LayerMask
,Vector2Int
,Vector3Int
,RangeInt
,RectInt
,BoundsInt
#178 - mpc.exe support Mono(running on Mac and Linux) #155
- mpc.exe support csproj 15.0
1.7.3.1
Only for NuGet version.
- Fix TypelessFormatter supports private type. #187
1.7.3.2
Only for NuGet version.
- Fix TypelessFormatter convert primitive array to object array. #187, #189
Note: this is breaking changes
1.7.3.3
- Fix mpc degraded enum formatter generating #196
1.7.3.4
- Fix FromJson can not parse json string with decimal point #199