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 NinoUnity 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