MessagePack.FSharpExtensions
3.0.0
.NET 5.0
.NET Core 2.1
.NET Standard 2.0
dotnet add package MessagePack.FSharpExtensions --version 3.0.0
NuGet\Install-Package MessagePack.FSharpExtensions -Version 3.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MessagePack.FSharpExtensions" Version="3.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MessagePack.FSharpExtensions --version 3.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MessagePack.FSharpExtensions, 3.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install MessagePack.FSharpExtensions as a Cake Addin
#addin nuget:?package=MessagePack.FSharpExtensions&version=3.0.0
// Install MessagePack.FSharpExtensions as a Cake Tool
#tool nuget:?package=MessagePack.FSharpExtensions&version=3.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MessagePack.FSharpExtensions
MessagePack.FSharpExtensions is a MessagePack-CSharp extension library for F#.
Usage
open System
open System.Buffers
open MessagePack
open MessagePack.Resolvers
open MessagePack.FSharp
[<MessagePackObject>]
type UnionSample =
| Foo of XYZ : int
| Bar of OPQ : string list
let convertAsMemory<'T> options (value: 'T) =
let memory = ReadOnlyMemory(MessagePackSerializer.Serialize(value, options))
MessagePackSerializer.Deserialize<'T>(memory, options)
let convertAsSequence<'T> options (value: 'T) =
let sequence = ReadOnlySequence(MessagePackSerializer.Serialize(value, options))
MessagePackSerializer.Deserialize<'T>(& sequence, options)
let dump = function
| Foo x ->
printfn "%d" x
| Bar xs ->
printfn "%A" xs
let resolver =
Resolvers.CompositeResolver.Create(
FSharpResolver.Instance,
StandardResolver.Instance
)
let options = MessagePackSerializerOptions.Standard.WithResolver(resolver)
Foo 999
|> convertAsMemory options
|> dump
Bar ["example"]
|> convertAsSequence options
|> dump
Supported types
- option
- voption
- list
- map
- set
- Discriminated Union
- Struct Discriminated Union
Records, Struct Records and Anonymous Records are serialized and deserialized using DynamicObjectResolver
in MessagePack-CSharp
.
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
-
.NETCoreApp 2.1
- FSharp.Core (>= 5.0.1)
- MessagePack (>= 2.3.85)
-
.NETCoreApp 3.1
- FSharp.Core (>= 5.0.1)
- MessagePack (>= 2.3.85)
-
.NETStandard 2.0
- FSharp.Core (>= 5.0.1)
- MessagePack (>= 2.3.85)
-
net5.0
- FSharp.Core (>= 5.0.1)
- MessagePack (>= 2.3.85)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on MessagePack.FSharpExtensions:
Package | Downloads |
---|---|
NBomber.Contracts
Public contracts for NBomber |
|
FSharpApiSearch
F# API search engine |
|
Fun.Blazor.HotReload
Package Description |
|
SilkyFowl.Avalonia.FuncUI.LiveView
Live fs/fsx previewer for Avalonia.FuncUI. |
|
Fun.SunUI.HotReload
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.