MessagePack for CLI (Common Language Infrastructure) is an implementation of the MessagePack specification for the .NET CLI. That is, this is not only a binding for C#, but also is able to be used from Visual Basic, F#, PowerShell, Iron Python, Iron Ruby, and so on.
Currently supported runtimes are following:
API Documents
Usage:
MessagePackObject
supports MessagePack dynamic typing nature in strongly typed CLI style.Samples
MessagePackObject
and provides best choice to deserialize it.IPackable
and IUnpackable
. These are extension point for your data type to handle custom serialization.Spec:
str
types and ext
types.Advanced:
MessagePackObject
)MessagePack for CLI does NOT support cyclic references. This is differ from runtime serializer like BinaryFormatter
. This is intended specification, because many bindings also do not support cyclic references, it is nonsense to support cyclic reference. When you want to serialize object in compact binary format supporting cyclic reference, built-in BinaryFormatter
is reasonable choice.
Many environments do not consider leap seconds. Therefore, in terms of interoperability, you SHOULD NOT expect that the destination handles it, especially using epoch time as a serialization format (it is the default behavior). If you have to handle leap seconds, you can use ISO-XXX formatted date-time strings, but remember the destination might not be able to interpret it.
By design, collections of CLI implementation can have their items up to Int32.MaxValue (about 2 billions), but the MessagePack specification says that Array32 or Map32 may contain up to UInt32.MaxValue (about 4 billions). Currently, MessagePack for CLI does not support such big collection. Note that many implementation, including Java, also do not support them.
NUnit sometimes reports assertion error for comparing MessagePackObject and compatible type. This is because NUnit does not handle implicit type conversion on the assertion logic. You can avoid it with direct invocation to the MessagePackObject.Equals().
There are unsupported version of runtime, because of developing work around cost.
Q. Is there DynamicObject
version of message pack object?
Q. Are there 'template' like Java binding?
T.B.D.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4