crc
Rust implementation of CRC(8, 16, 32, 64). MSRV is 1.46.
Usage
Add crc
to Cargo.toml
[]
= "2.0"
Compute CRC
use ;
pub const X25: = new;
pub const CASTAGNOLI: = new;
assert_eq!;
assert_eq!;
// use custom algorithm
const CUSTOM_ALG: = Algorithm ;
let crc = new;
let mut digest = crc.digest;
digest.update;
assert_eq!;
Benchmark
cargo bench
with 2.6 GHz Intel Core i7. Comparison
crc16 time: [2.0082 ms 2.0206 ms 2.0367 ms]
thrpt: [468.25 MiB/s 471.96 MiB/s 474.89 MiB/s]
crc32 time: [1.7659 ms 1.7793 ms 1.7952 ms]
thrpt: [531.25 MiB/s 535.98 MiB/s 540.05 MiB/s]
crc64 time: [2.0655 ms 2.0803 ms 2.0973 ms]
thrpt: [454.71 MiB/s 458.43 MiB/s 461.72 MiB/s]
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.