/msgpack-cli

MessagePack implementation for Common Language Infrastructure / msgpack.org[C#]

Primary LanguageC#Apache License 2.0Apache-2.0

MessagePack for CLI

What is it?

This is MessagePack serialization/deserialization for CLI (Common Language Infrastructure) implementations such as .NET Framework, Silverlight, Mono (including Moonlight.) This library can be used from ALL CLS compliant languages such as C#, F#, Visual Basic, Iron Pyhton, Iron Ruby, PowerShell, C++/CLI or so.

Usage

You can serialize/deserialize objects as following:

  1. Create serializer via MessagePackSerializer.Create generic method. This method creates dependent types serializers as well.
  2. Invoke serializer as following: ** Pack method with destination Stream and target object for serialization. ** Unpack method with source Stream.
// Creates serializer.
var serializer = SerializationContext.Default.GetSerializer<T>();
// Pack obj to stream.
serializer.Pack(stream, obj);
// Unpack from stream.
var unpackedObject = serializer.Unpack(stream);
' Creates serializer.
Dim serializer = SerializationContext.Default.GetSerializer(Of T)()
' Pack obj to stream.
serializer.Pack(stream, obj)
' Unpack from stream.
Dim unpackedObject = serializer.Unpack(stream)

Features

  • Fast and interoperable binary format serialization with simple API.
  • Generating pre-compiled assembly for rapid start up.
  • Flexible MessagePackObject which represents MessagePack type system naturally.

Documentation

See wiki

Installation

  • You can get binary drops from NuGet (currently, pre-release only).
    • There are NO distribution packages other than NuGet, so you have to build your own drops for Mono.

How to build

For .NET Framework

  1. Install recent Windows SDK (at least, .NET Framework 4 Client Profile and MSBuild is needed.)
    Or install Visual Studio or Visual Studio Express.

    1. If you want to build unit test assemblies, install NuGet and then restore NUnit packages.
  2. Run:

    msbuild MsgPack.sln

Or (for .NET 3.5 drops, Silverlight 4 drops, and Silverlight 5 drops):

msbuild MsgPack.compats.sln

Or (for Windows Phone 7.1 drops):

msbuild MsgPack.wp7.sln

Or open one of above solution files in your IDE and run build command in it.

For Mono

Open MsgPack.mono.sln with MonoDevelop and then click Build menu item. (Of cource, you can build via xbuild.)

See also