Nerdbank.MessagePack 1.0.43
Nerdbank.MessagePack
A modern, fast and NativeAOT-compatible MessagePack serialization library
This is a fast and more user-friendly MessagePack serialization library for .NET and .NET Framework. This package is brought to you by one of the two major contributors to MessagePack-CSharp. As its natural successor, this library comes packed with features that its predecessor lacks, and has ongoing support.
Features
- Serializes in the compact and fast MessagePack format.
- Performance is on par with the highly tuned and popular MessagePack-CSharp library.
- Automatically serialize any type annotated with the PolyType
[GenerateShape]attribute or non-annotated types by adding a 'witness' type with a similar annotation. - Fast
ref-based serialization and deserialization minimizes copying of large structs. - NativeAOT and trimming compatible.
- Serialize only properties that have non-default values (optionally).
- Keep memory pressure low by using async serialization directly to/from I/O like a network, IPC pipe or file.
- Streaming deserialization for large or over-time sequences.
- Primitive msgpack reader and writer APIs for low-level scenarios.
- Author custom converters for advanced scenarios.
- Security mitigations for stack overflows.
- Optionally serialize your custom types as arrays of values instead of maps of names and value for more compact representation and even higher performance.
- Support for serializing instances of certain types derived from the declared type and deserializing them back to their original runtime types using unions.
- Optionally preserve reference equality across serialization/deserialization.
- Structural (i.e. deep, by-value) equality checking for arbitrary types, both with and without collision resistant hash functions.
See how these features and more compare with the leading MessagePack library.
Showing the top 20 packages that depend on Nerdbank.MessagePack.
| Packages | Downloads |
|---|---|
|
StreamJsonRpc
A cross-platform .NETStandard library that implements the JSON-RPC wire protocol and can use System.IO.Stream, System.IO.Pipelines or WebSocket so you can use it with any transport.
|
7 |
.NET Framework 4.7.2
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.NET.StringTools (>= 18.0.2)
- Microsoft.VisualStudio.Validation (>= 17.13.22)
- PolyType (>= 1.0.0)
- System.Collections.Immutable (>= 8.0.0)
- System.IO.Pipelines (>= 8.0.0)
- System.Text.Json (>= 8.0.6)
.NET 8.0
- Microsoft.NET.StringTools (>= 18.0.2)
- Microsoft.VisualStudio.Validation (>= 17.13.22)
- PolyType (>= 1.0.0)
- System.IO.Pipelines (>= 8.0.0)
.NET 9.0
- Microsoft.NET.StringTools (>= 18.0.2)
- Microsoft.VisualStudio.Validation (>= 17.13.22)
- PolyType (>= 1.0.0)
.NET Standard 2.0
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.NET.StringTools (>= 18.0.2)
- Microsoft.VisualStudio.Validation (>= 17.13.22)
- PolyType (>= 1.0.0)
- System.Collections.Immutable (>= 8.0.0)
- System.IO.Pipelines (>= 8.0.0)
- System.Text.Json (>= 8.0.6)