天天看点

[.NET 开源] 高性能的 Swifter.MessagePack 已发布,并附带新版本的 Swifter.Json 和 Swifter.Data。

抱歉各位朋友,由于各种私事公事,本应该在 19 年底发布的 Swifter.MessagePack 库延迟了这么久才发布,我深感抱歉。

[.NET 开源] 高性能的 Swifter.MessagePack 已发布,并附带新版本的 Swifter.Json 和 Swifter.Data。

MsgPack 简介

MsgPack 一种非常轻巧的二进制数据交换格式,巧妙的设计让它相比其他二进制数据格式更可读,并且有着不错的压缩率和逻辑性能,是目前相当火热的数据交换格式。

Swifter.MessagePack 遵循 MsgPack 新的规范实现;相比 .NET 其他 MsgPack 序列化库,Swifter.MessagePack 有着更好的性能,生成的内容更紧凑合理且更简单易用。

Nuget:Swifter.MessagePack,Swifter.Json,Swifter.Data

GitHub:Swifter.MessagePack,Swifter.Json

如果您想使用 Swifter 库,请在 Nuget 上安装/下载最新版本,如需单文件版本,请自行生成/合并。

简单使用 Swifter.MessagePack

[.NET 开源] 高性能的 Swifter.MessagePack 已发布,并附带新版本的 Swifter.Json 和 Swifter.Data。

MessagePackFormatter 类内部还有数十个方法重载,包括静态和实例方法,总有一些适合您;这些方法都是线程安全的。

更多使用方法请参考早期关于 Swifter.Json 的文章,GitHub 或 Wiki;学习交流进 Swifter 的 QQ 群:133630914(新群,欢迎加入)。

Swifter 框架的特性

(1) Swifter 可以运行在 .NET Framework 2.0+, .NET Core 2.0+, .NET Standard 2.0+, MONO JIT, MONO AOT, Xamarin.Android, Xamarin.iOS, Unity JIT 等平台/运行时上,Unity IL2CPP 运行时由于没有我们测试环境,不知可否正常运行,更多信息请看下面的 AOT 说明。

(2) Swifter 有着深层的抽象封装,这虽然带来了一些性能和内存的损耗,但也获得了更高的扩展性;Swifter.Json/Swifter.MessagePack/Swifter.Data 的可公用的代码非常多,这使得在 Swifter 上实现一个新的序列化库只需要编写少量代码即可实现,这是其他框架难实现的。

(3) 虽然 Swifter 有很多接口和抽象编程,但是 Swifter 并没有因此比其他的框架慢或内存占用大,反比它们更快和更小内存占用;这是因为 Swifter 从来都是使用更好算法和逻辑来获取性能,而不是使用更直接的代码获取直接的性能。

(4) 作为类库开发者,我们深知每个人开发和测试的侧重点都与他人不一样,自己找出自己的问题太难,所以 Swifter.Json 和 Swifter.MessagePack 除了我们自己的测试单元之外, 还 "偷" 了 Newtonsoft, Neuecc 和 Spanjson 的 5000+ 个测试单元( 去除了 Newtonsoft 的部分测试单元);现已测试通过 4200+ 个,不通过 800+ 个是我们认为可以允许或是更加合理的行为。(不劳而获的测试单元确实用着很爽,但事实是我们"搬"这些测试单元用了 3 天