Ultimate high-performance binary serialization library for C#
๐ Official Website โข ๐ Documentation โข ๐ Performance โข ๐จ๐ณ ไธญๆ
Fast, flexible, and effortless C# binary serialization
Leverages C# Source Generators for automatic compile-time code generation. Zero manual setup required. |
Engineered for high-throughput, low-latency scenarios with minimal GC pressure and memory allocation. |
Works seamlessly with Unity projects and native Unity data types like Vector3 and Quaternion. |
Handles complex scenarios like polymorphism, versioning, custom constructors, and private member serialization. |
- High-Speed Serialization: Consistently ranks among the fastest C# binary serializers
- Low Memory Footprint: Minimal GC pressure and memory allocation
- By-Reference Deserialization: Deserialize directly into existing objects to eliminate allocation overhead
- Thread-Safe Operations: Fully concurrent serialization/deserialization without external locking
- Data Integrity: Built-in type checking ensures data consistency
- Primitives & Built-ins: Full support for all C# primitive types (
int
,float
,DateTime
, etc.) - Modern C# Features:
records
,record structs
,structs
,classes
, and generics - Collections: Any
IEnumerable<T>
includingList<T>
,Dictionary<TKey,TValue>
,HashSet<T>
,ConcurrentDictionary<TKey,TValue>
- Advanced Generics: Complex nested types like
Dictionary<string, List<CustomType[]>>
- Value Types:
ValueTuple
,Tuple
,KeyValuePair<TKey,TValue>
,Nullable<T>
- Unity Native Types:
Vector3
,Quaternion
,Matrix4x4
, and other Unity-specific data types - Cross-Assembly Support: Serialize types across different .NET assemblies and projects
- Platform Agnostic: Works seamlessly across different .NET implementations
- Polymorphism: Interface and abstract class serialization with type preservation
- Custom Constructors:
[NinoConstructor]
for immutable types and factory patterns - Versioning & Migration:
[NinoMember]
ordering and[NinoFormerName]
for backward compatibility - Privacy Control:
[NinoType(true)]
to include private/protected members - Selective Serialization:
[NinoIgnore]
to exclude specific fields - String Optimization:
[NinoUtf8]
for efficient UTF-8 string handling
Standard .NET Projects:
dotnet add package Nino
Unity Projects (via OpenUPM):
openupm add com.jasonxudeveloper.nino
[NinoType]
public class GameData
{
public int Score;
public string PlayerName;
public DateTime LastPlayed;
}
// Serialize
var data = new GameData { Score = 1000, PlayerName = "Player1", LastPlayed = DateTime.Now };
byte[] bytes = NinoSerializer.Serialize(data);
// Deserialize
var restored = NinoDeserializer.Deserialize<GameData>(bytes);
Nino consistently delivers exceptional performance across various scenarios. See detailed benchmarks and comparisons with other popular serialization libraries.
Made with โค๏ธ by JasonXuDeveloper
Licensed under MIT License