A cross platform open source .NET serializer built for Unity

OdinSerializer is an open-source serializer built for and used by Odin - Inspector & Serializer, also widely utilized in the Unity community for many popular assets. The serializer compares very well to many popular serialization libraries in terms of performance and garbage allocation, while providing a superior feature-set for use in Unity.

Easy to use

Inherit from one class, and you're ready to serialize anything.

// Inherit from SerializedScriptableObject to use Odin Serializer
// It's that simple!
public class MyScriptableObject : SerializedScriptableObject
{
    public Dictionary<int, string> MyDictionary;
}

Learn more here

Easy to understand

The serialization debugger shows you what's going on, and why.

Learn more here

Packed with features

Specially designed for use in Unity.

Feature Comparisons

Odin Serializer Unity JSON Full Serializer Binary Formatter JSON.NET Protobuf-net
Open Source
Cross Platform
Out of the box Unity Support
Supports Unity structs
Binary Format
Json Format
Merge-friendly data in Unity objects
Interfaces
Properties
Polymorphism
Generics
Dictionaries
Circular References
Delegates
Multi-dimensional arrays
Extendable
Renaming Members
Renaming Types
IL Optimized
Supports .NET interfaces
Supports .NET callback attributes

Fast

The performance graphs in this section are all profiled with OdinSerializer's binary format, which is the fastest-performing format used at runtime in builds.

Serialization of a simple object with no polymorphism

Serialization of a complex object with lots of polymorphism

*Unity JsonUtility has been excluded from this benchmark because it supports neither polymorphism or dictionaries

Serialization of various large arrays and lists

Garbage allocation of the 3 tests above