1个稳定版本
2.0.0 | 2024年8月4日 |
---|
在 算法 中排名第339
每月下载量 247,197 次
在 10,155 个crate中使用(通过 miniz_oxide)
20KB
218 行
Rust的Adler-32校验和
这是adler crate的分支,因为原始版本已被存档且不再由其作者更新
此crate提供了一个简单的Adler-32校验和实现,用于zlib压缩格式。
请参考变更日志,以查看最近版本中的更改。
特性
- 许可宽松(0BSD)的纯净室实现。
- 无依赖。
- 无
unsafe
。 - 良好的性能(3-4 GB/s)(见备注)。
- 支持
#![no_std]
(使用default-features = false
)。
用法
在您的Cargo.toml
中添加条目
[dependencies]
adler2 = "2.0.0"
请参阅API文档了解如何使用crate的功能。
Rust版本支持
目前,此crate支持所有从Rust 1.56.0开始的Rust版本。
提高最低支持的Rust版本(MSRV)不会被视作破坏性变更,但如果没有充分的理由,将不会进行此操作。无论何种情况,都将始终支持最新的3个稳定Rust版本。
性能
由于算法的工作方式以及当前在安全的 Rust 中无法使用显式 SIMD 的限制,这个 crate 极大地受益于使用启用较新 CPU 指令进行编译(例如使用 RUSTFLAGS=-C target-feature'+sse4.1
或 -C target-cpu=x86-64-v2
/-C target-cpu=x86-64-v3
参数,具体取决于目标 CPU 的支持。)根据 crate 的基准测试,在 Ryzen 5600 上,启用 SSE 4.1(在 x86-64-v2 特性级别中启用)可以提供约 50-150% 的速度提升,启用 LZCNT 指令(在 x86-64-v3 特性级别中启用)可以进一步提供约 50% 的速度提升。
依赖项
~205KB