Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A fast and compact binary [de]serializer for .NET
C#
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Libraries
Metsys.Little.Tests
Metsys.Little
.gitignore
Metsys.Little.VS2k8.sln
Metsys.Little.sln
README.textile
license.txt
resharper.xml

README.textile

Metsys.Little

Metsys.Little is a lightweight .NET binary serializer with a focus on compactness and speed. Given the following object:

var user = new User { Id = 433, Name = "Goku" Enabled = true, Initial = null, Description = null, };

Metsys.Little will serialize this to a 13 bytes. The built-in BinaryFormatter will take 400 bytes. The object created in the IntegrationTests.NestedTypesWithCollectionOfObjects method serializes to 74 bytes – the BinaryFormatter is over 900.

This is achieved without any cpu-intensive compression or other fancy tricks.

Limitations

Metsys.Little supports built-in value types (int/short/long/float/double/decimal/byte/char/enums/datetime/guids) and strings. It also supports a number of IEnumerable’s – with the main exception being Dictionary types (non-generic types aren’t likely to work either).

The type must have a default constructor – it can be private.

Usage

Use the Serializer.Serialize method to turn your object into a byte array:
var data = Serializer.Serialize(new User{...});

Use the Deserializer.Deserialize method to turn your byte array (or stream) back into your object:
var user = Deserializer.Deserialize(data);

Metsys.Little does not (currently) support versioning. If your object changes (add/remove properties) previously serialized data will not be able to be deserialized. Metsys.Little is suited for short-lived data (shopping carts, session) or where versioning is handled at the application layer.

If you like Little, you may also want to check out Protobuff – there are a number of quality C# implementations. Protobuf supports versioning, can be smaller, and some implementations are faster.

Something went wrong with that request. Please try again.