#crc32 #checksum #const #crc #build-time

const-crc32

crc32校验和算法的const函数实现

6个版本 (稳定)

1.3.0 2023年9月6日
1.3.0-rc.12023年6月23日
1.2.0 2022年11月2日
1.1.0 2022年10月5日
1.0.1 2022年10月5日

算法 中排名第 352

Download history 1141/week @ 2024-03-14 1642/week @ 2024-03-21 1374/week @ 2024-03-28 1891/week @ 2024-04-04 1717/week @ 2024-04-11 1272/week @ 2024-04-18 1337/week @ 2024-04-25 1446/week @ 2024-05-02 1111/week @ 2024-05-09 1198/week @ 2024-05-16 1142/week @ 2024-05-23 1557/week @ 2024-05-30 1600/week @ 2024-06-06 2402/week @ 2024-06-13 2263/week @ 2024-06-20 1827/week @ 2024-06-27

每月下载量 8,359
11 个crate中使用(通过 frost-core

MIT 协议

8KB
99

const-crc32

const crc32校验和实现的函数。

示例

const BYTES: &[u8] = "The quick brown fox jumps over the lazy dog".as_bytes();
const CKSUM: u32 = const_crc32::crc32(BYTES);
assert_eq!(CKSUM, 0x414fa339_u32);

用法

这是一个原始实现,如果用于运行时动态数据,预期性能较差。使用通常应限制在基于构建时提供的静态或const数据声明的const变量。

#[const_eval_limit]

您可能需要增加crate范围的const_eval_limit设置以使用const_crc32处理更大的字节切片。

增加const_eval_limit需要nightly-only #![feature(const_eval_limit)]

之前,这个crate自行设置了限制,但截至2022-10-30的nightly,const_crc32中设置的值不会增加使用库的crate的限制。

构建时const数据大约100k的编译时间小于1秒。


lib.rs:

const crc32校验和实现的函数。

示例

const BYTES: &[u8] = "The quick brown fox jumps over the lazy dog".as_bytes();
const CKSUM: u32 = const_crc32::crc32(BYTES);
assert_eq!(CKSUM, 0x414fa339_u32);

没有运行时依赖