Ceras is a binary serializer. It converts any object into a byte[] and back. It goes above and beyond in terms of features, speed, and comfort. Supports reference loops, large/complicated inheritance chains, splitting objects into parts. Ceras generally ranks at the top end of the performance spectrum, together with NetSerializer and MessagePack-CSharp. To get an idea of how Ceras performs here are the preliminary benchmark results. The resulting binary size is about the same as MessagePack-CSharp. Don't forget to tune the settings in SerializerConfig for your specific situation. Using Ceras to read/write network packets might require different settings than, lets say, saving a settings-object to a file, or persisting items/spells/monsters in a game.
Features
- Very fast, small binary output
- Supports pretty much any type
- Full support for reference persistence (including circular references!)
- Full support for polymorphism / inheritance / interfaces
- Can serialize objects into parts as "ExtenalObjects" (useful in many many scenarios)
- Automatic version-tolerance, no need to place any attributes on your classes!