面向 C# 的高性能 MessagePack 序列化库,支持 .NET、Unity 和 Xamarin,内置 LZ4 压缩。
Cysharp/NativeCompressions
为 .NET 和 Unity 提供 LZ4、Zstandard 与实验性 OpenZL 的原生绑定及高层流式压缩 API。
- Star
- 320
- Fork
- 11
- 未关闭 Issue
- 0
- 最近提交
- 前天
这是什么?
NativeCompressions 为 .NET 和 Unity 封装了原生的 LZ4 与 Zstandard 库,既提供基于字节数组的简单接口,也提供流式编码器、解码器、Stream 包装,以及基于 PipeReader/PipeWriter 的异步方法。项目直接调用官方原生实现而非纯 C# 移植,便于跟进上游的性能与安全更新。
LZ4 接口采用 frame 格式,可设置压缩级别、块大小、校验和及外部字典等选项;Zstandard 提供相似的接口并支持字典训练。预编译原生库覆盖 Windows、Linux、macOS、Android、iOS 和 Mac Catalyst,文档还介绍了 Blazor WebAssembly 的用法。OpenZL 绑定目前为实验性质,暂无 NuGet 包和高层 API。
包按算法和平台拆分,可只安装所需部分。项目还附有 NuGetForUnity 的 Unity 配置说明。
核心功能
- 01提供 LZ4 与 Zstandard 的原生绑定,支持字节数组和 Span 接口。
- 02流式编码器与解码器返回 OperationStatus,接口风格类似 BrotliEncoder。
- 03基于 Stream、PipeReader 和 PipeWriter 的异步压缩与解压。
- 04支持字典,包括用 Zstandard 训练字典供 LZ4 使用。
- 05附带 Windows、Linux、macOS、Android、iOS 等平台的预编译原生库。
- 06以原生 C API 形式提供实验性的 OpenZL 绑定。
适用场景
- 在 .NET 服务中压缩网络数据或缓存数据。
- 为加载压缩资源的 Unity 游戏加入快速的 LZ4 解压。
- 根据速度与压缩率需求在 LZ4 和 Zstandard 之间做选择。
- 在 Blazor WebAssembly 应用中按文档方式使用原生压缩库。
快速上手
- 1
从 NuGet 安装 NativeCompressions 包
dotnet add package NativeCompressions - 2
在代码中调用 LZ4.Compress 和 LZ4.Decompress,或 Zstandard.Compress 和 Zstandard.Decompress
使用前须知
- OpenZL 处于实验阶段,只提供原生绑定,没有 NuGet 包。
- macOS 原生库需要 macOS 15.0 或更高版本。
- iOS 和 Mac Catalyst 应用需要 .NET 10 或更高版本。
- 不支持 32 位进程。
收录于专题
标签
常见问题
- NativeCompressions 是什么?
- 为 .NET 和 Unity 提供 LZ4、Zstandard 与实验性 OpenZL 的原生绑定及高层流式压缩 API。 NativeCompressions 为 .NET 和 Unity 封装了原生的 LZ4 与 Zstandard 库,既提供基于字节数组的简单接口,也提供流式编码器、解码器、Stream 包装,以及基于 PipeReader/PipeWriter 的异步方法。项目直接调用官方原生实现而非纯 C# 移植,便于跟进上游的性能与安全更新。
- NativeCompressions 可以免费使用吗?用的什么许可证?
- NativeCompressions 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- NativeCompressions 还在维护吗?
- 活跃维护中。NativeCompressions 最近一次提交是在 2026年11月5日。
- NativeCompressions 适合用来做什么?
- 在 .NET 服务中压缩网络数据或缓存数据。 为加载压缩资源的 Unity 游戏加入快速的 LZ4 解压。 根据速度与压缩率需求在 LZ4 和 Zstandard 之间做选择。 在 Blazor WebAssembly 应用中按文档方式使用原生压缩库。
- NativeCompressions 怎么安装和运行?
- 从 NuGet 安装 NativeCompressions 包: dotnet add package NativeCompressions 在代码中调用 LZ4.Compress 和 LZ4.Decompress,或 Zstandard.Compress 和 Zstandard.Decompress
- 在哪里获取 NativeCompressions?
- 源代码和安装说明在 GitHub 上:https://github.com/Cysharp/NativeCompressions
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
极速无损压缩算法,C 语言实现,解压速度极快,压缩速度与压缩率可灵活权衡。
dnSpy 的非官方延续版本,用于在没有源码时调试和编辑 .NET 与 Unity 程序集。
面向 .NET 和 Unity 的高性能、低内存分配 YAML 1.2 库,支持源码生成的序列化。
面向 Unity、XNA 等游戏的插件与模组框架,用于加载自定义代码。
让 Unity 和 Unreal 游戏可以用 TypeScript/JavaScript 编写逻辑的脚本解决方案,Unity 版还支持 Lua 和 Python。