Skip to content

JasonXuDeveloper/Nino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Nino

Ultimate high-performance binary serialization library for C#

Build Status License NuGet OpenUPM

๐ŸŒ Official Website โ€ข ๐Ÿ“š Documentation โ€ข ๐Ÿš€ Performance โ€ข ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡

Fast, flexible, and effortless C# binary serialization


โœจ Why Choose Nino?

๐Ÿ”ง Seamless Integration

Leverages C# Source Generators for automatic compile-time code generation. Zero manual setup required.

โšก Blazing Performance

Engineered for high-throughput, low-latency scenarios with minimal GC pressure and memory allocation.

๐ŸŽฎ Unity Compatible

Works seamlessly with Unity projects and native Unity data types like Vector3 and Quaternion.

๐Ÿ› ๏ธ Advanced Features

Handles complex scenarios like polymorphism, versioning, custom constructors, and private member serialization.


๐ŸŽฏ Core Features

๐Ÿš€ Performance & Reliability

  • 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

๐Ÿงฉ Comprehensive Type Support

  • 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> including List<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 & Cross-Platform

  • 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

โš™๏ธ Advanced Control

  • 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

๐Ÿ“– Quick Start

Installation

Standard .NET Projects:

dotnet add package Nino

Unity Projects (via OpenUPM):

openupm add com.jasonxudeveloper.nino

Basic Usage

[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);

๐Ÿ“š Full Documentation โ†’


๐Ÿ“Š Performance

Nino consistently delivers exceptional performance across various scenarios. See detailed benchmarks and comparisons with other popular serialization libraries.

๐Ÿš€ View Benchmarks โ†’


๐Ÿค Community & Support


Made with โค๏ธ by JasonXuDeveloper

Licensed under MIT License

About

Ultimate high-performance binary serialization library for C#.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 6