Nino

October 5, 2025 · View on GitHub

Nino

终极高性能C#二进制序列化库

构建状态 许可证 NuGet OpenUPM Ask DeepWiki

🌐 官方网站📚 文档🚀 性能测试🇺🇸 English

快速、灵活、简单易用的C#二进制序列化QQ群:1054653934


✨ 为什么选择 Nino?

🔧 无缝集成

利用C# Source Generator技术实现编译时自动代码生成,零手动配置。

⚡ 极致性能

专为高吞吐量、低延迟场景设计,拥有极低的GC压力和内存分配。

🎮 Unity兼容

与Unity项目无缝协作,支持Vector3、Quaternion等Unity原生数据类型。

🛠️ 高级特性

处理复杂场景:多态、版本控制、自定义构造函数和私有成员序列化。


🎯 核心功能

🚀 性能与可靠性

  • 高速序列化:在C#二进制序列化库中始终名列前茅
  • 低内存占用:极低的GC压力和内存分配
  • 引用反序列化:直接反序列化到现有对象中,消除分配开销
  • 线程安全操作:完全支持并发序列化/反序列化,无需外部锁定
  • 数据完整性:内置类型检查确保数据一致性

🧩 全面的类型支持

  • 基础类型:完全支持所有C#基础类型(intfloatDateTime等)
  • 现代C#特性recordsrecord structsstructsclasses和泛型
  • 集合类型:任何IEnumerable<T>,包括List<T>Dictionary<TKey,TValue>HashSet<T>ConcurrentDictionary<TKey,TValue>
  • 高级泛型:复杂嵌套类型如Dictionary<string, List<CustomType[]>>
  • 值类型ValueTupleTupleKeyValuePair<TKey,TValue>Nullable<T>

🎮 Unity与跨平台

  • Unity原生类型Vector3QuaternionMatrix4x4和其他Unity特定数据类型
  • 跨程序集支持:在不同.NET程序集和项目间序列化类型
  • 平台无关:在不同.NET实现间无缝工作

⚙️ 高级控制

  • 多态支持:接口和抽象类序列化,保留类型信息
  • 自定义构造函数[NinoConstructor]用于不可变类型和工厂模式
  • 版本控制与迁移[NinoMember]排序和[NinoFormerName]向后兼容
  • 隐私控制[NinoType(true)]包含私有/受保护成员
  • 选择性序列化[NinoIgnore]排除特定字段
  • 字符串优化[NinoUtf8]高效UTF-8字符串处理

📖 快速开始

安装

标准.NET项目:

dotnet add package Nino

Unity项目(通过OpenUPM):

openupm add com.jasonxudeveloper.nino

基本用法

[NinoType]
public class GameData
{
    public int Score;
    public string PlayerName;
    public DateTime LastPlayed;
}

// 序列化
var data = new GameData { Score = 1000, PlayerName = "Player1", LastPlayed = DateTime.Now };
byte[] bytes = NinoSerializer.Serialize(data);

// 反序列化
var restored = NinoDeserializer.Deserialize<GameData>(bytes);

📚 完整文档 →


📊 性能表现

Nino在各种场景下都能提供卓越的性能表现。查看详细的基准测试和与其他流行序列化库的对比。

🚀 查看基准测试 →


🤝 社区与支持

GitHub Issues GitHub Stars GitHub Forks

🐛 报告问题💡 功能建议🔀 参与贡献

QQ群:1054653934


Made with ❤️ by JasonXuDeveloper

基于 MIT 许可证