• Stars
    star
    454
  • Rank 96,373 (Top 2 %)
  • Language
    C#
  • License
    MIT License
  • Created over 2 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Definite useful and high performance serialization library for any C# projects, including but not limited to .NET Core apps or Unity/Godot games.

Nino

Definite useful and high performance modules for C# projects, especially for Unity.

实用的高性能C#模块,尤其在Unity平台能带来令人难以置信的效益。

buildlicense

功能列表

  • 共享模块 nino.shared.nuget

    • IO
      • 高性能数据压缩流
      • 数组对象池(线程安全)
      • 基础对象池(线程安全)
      • 二进制流对象池(线程安全)
      • 可动态修改Buffer流(包含不需要分配io_buffer去read/write的方法)
      • 高性能动态扩容Buffer(易用、高效,低GC)性能报告 使用教程
    • Collections
      • 无检查List
      • 无检查Stack
    • Mgr
      • 压缩解压助手
    • Util
      • HashCode计算工具
  • 序列化模块,使用教程 nino.serialization.nuget

    Protobuf-net/MsgPack/BinaryFormatter/Bson/JSON等序列化库的平替方案,优势是更小体积,更高性能,支持多线程,支持多态

    注意,该模块的序列化数据,仅支持在C#平台使用该库进行序列化和反序列化,无法跨语言使用

    Nino.Serialization v1.1.2与其前面所有版本不兼容,详细请查看使用教程

    Nino.Serialization v1.1.0与其前面所有版本不兼容,详细请查看使用教程

    Nino.Serialization v1.0.21.2与其前面所有版本不兼容,详细请查看使用教程(v1.0.21有个Log忘删了,所以补发了v1.0.21.2

    • 测试案例

      • Test1 Nino VS Protobuf-net 序列化

      • Test2 Nino VS BinaryFormatter 序列化

      • Test3 Nino VS Protobuf-net 反序列化

      • Test4 Nino VS BinaryFormatter 反序列化

      • Test5 Nino VS MongoDB.Bson 序列化以及反序列化

      • Test6 Nino VS MsgPack 序列化以及反序列化

      • Test7 自定义Nino序列化反序列化委托

      • Test8 自动收集全部字段进行序列化/反序列化(无需给单个字段或属性打标签)

      • Test9 基础类型序列化反序列化

      • Test10 复杂结构类型序列化反序列化

      • Test11 ILRuntime测试(需要搭配使用教程启用ILRuntime)

      • 真机测试 可以打IL2CPP或Mono包进行测试(对比了Nino Reflection/Code Gen与Protobuf-net/BinaryFormatter/Bson/MsgPack Code Gen的序列化性能、序列化体积、反序列化性能)

        Protobuf-net与Bson在IL2CPP下暂不支持字典序列化

        MsgPack在IL2CPP下不生成代码无法使用

    • 性能报告

    • RoadMap

      • ILRuntime针对性优化(直接操作ILTypeInstance的成员而不是用反射)
      • IL Emit -> 非IL2CPP环境
      • ExpressionTree -> 非IL2CPP环境
      • analyser -> 全局

目录结构

  • Docs,文档
  • src,Nino源码
  • Native,C++代码(用于部分功能)
  • Nino_Unity,Nino Unity 2019及以上版本的工程,包含源码和测试代码
  • Performance,性能报告

在Unity平台使用

有两种方法:

  • 直接下载本工程,并用Unity打开Nino目录进行开发

  • Nino_Unity/Assets/Nino复制到自己的Unity项目即可,如果不需要测试案例的话,可以不包含Nino/Nino/Assets/Nino/Test

    如果需要运行测试案例,记得也需要复制Nino_Unity/Asset/ThirdParty到Unity项目

在非Unity平台使用

  • 使用NuGet

    NuGet里搜Nino就好,目前有Nino.SharedNino.Serialization

    PM> Install-Package Nino.Shared -Version 1.0.15
    PM> Install-Package Nino.Serialization -Version 1.1.2
  • 使用src下的代码(复制进自己项目即可)

More Repositories

1

JEngine

The solution that allows unity games to update in runtime. 使Unity开发的游戏支持热更新的解决方案。
C#
1,965
star
2

Unity-GUI-Redis

A Unity Plugin which enhances productivity for developers who are using Redis.
C#
35
star
3

gdfh

使用JEnginev0.6.3制作的文字放置游戏——肝到发慌
C#
31
star
4

Miku

High performance TCP server/client library written in C#
C#
29
star
5

Python-POI-Spider

Python兴趣点(POI)爬虫,通过百度地图API爬取指定城市兴趣点列表,包含其:坐标、名称、联系方式
Python
20
star
6

protobuf-net-v2-for-ILRuntime

C#
19
star
7

JEngine-WebSocket-Server-Demo

C#
18
star
8

Hot-Websocket-Server

一个可以热更通讯事件/数据模型/定时器的node服务端架构,采用websocket通信 | A node server allows hot update logics/ data model / timer in runtime, using websocket protocol
JavaScript
12
star
9

DaServer

C#
11
star
10

Realtime-Socket-Chat

A realtime chat code based on C# client with Node.js Server, supports multi-chatroom; private individual chats | 基于C#客户端以及Node.js服务端的聊天室,支持多人聊天室以及私人聊天
C#
10
star
11

JAsset

JAsset是基于XAsset4.0魔改实现的Unity热更新资源管理插件,将用于JEngine框架
7
star
12

JEngine.AntiCheat

AntiCheat package for JEngine. JEngine框架的反内存修改AntiCheat扩展包。
C#
7
star
13

JEngine.Misc

Additional miscellaneous package for JEngine. JEngine框架的额外功能扩展包。
C#
1
star
14

JEngine.Docs

Document for JEngine
1
star
15

JEngine.LitJson

LitJson package for JEngine. JEngine框架的LitJson扩展包。
C#
1
star
16

JasonXuDeveloper

1
star