#散列 #simd #crc32 #crc #硬件加速 #算法 #sse

crc32c

安全实现硬件加速的CRC32C指令,具有软件回退功能

16个版本

0.6.8 2024年6月9日
0.6.5 2024年2月8日
0.6.4 2023年7月23日
0.6.3 2022年4月12日
0.2.0 2017年11月11日

#22 in 算法

Download history 253207/week @ 2024-04-28 249359/week @ 2024-05-05 281633/week @ 2024-05-12 288928/week @ 2024-05-19 278803/week @ 2024-05-26 329941/week @ 2024-06-02 321602/week @ 2024-06-09 307847/week @ 2024-06-16 301607/week @ 2024-06-23 274325/week @ 2024-06-30 298340/week @ 2024-07-07 269115/week @ 2024-07-14 286288/week @ 2024-07-21 277351/week @ 2024-07-28 287145/week @ 2024-08-04 305789/week @ 2024-08-11

1,166,414 每月下载量
用于 318 个crate(55 个直接使用)

Apache-2.0/MIT

28KB
584

CRC32C

Crates.io Docs.rs Travis

在可能的情况下使用硬件加速的CRC-32-Castagnoli算法的Rust实现。

以下架构上的硬件加速

  1. x84-64 配合 SSE 4.2
    • Rust所有稳定版本
    • 如果在编译时启用了SSE 4.2,则只会构建SSE实现。否则,将使用cpuid在运行时找到最佳实现。
  2. aarch64 配合 crc功能
    • 仅适用于rust版本>=1.80.0或nightly

其他所有处理器使用软件回退。

用法

首先,将以下内容添加到您的 Cargo.toml

[dependencies]
crc32c = "0.6"
extern crate crc32c;

fn main() {
    let message = b"Hello world!";
    let crc = crc32c::crc32c(message);

    println!("hash = {}", crc);
}

许可证

您可以选择根据 Apache 2.0 许可证MIT 许可证 使用此代码。

无运行时依赖项