8000 GitHub - JasonXuDeveloper/Nino: Ultimate high-performance binary serialization library for C#. · GitHub
[go: up one dir, main page]

Skip to content

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JasonXuDeveloper/Nino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,023 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nino

Ultimate high-performance binary serialization library for C#

Build Status License NuGet OpenUPM Ask DeepWiki

🌐 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

0