Expand description
librscrc
librscrc
is a collection of crc32 algorithms with support for various approaches and custom polynomial.
Usage examples
naive
use librscrc::prelude::*;
// compute crc32
let mut crc = Crc32::new_naive();
crc.update(b"123456789");
assert_eq!(crc.digest(), 0xCBF43926);
// compute crc32c
let mut crc = Crc32C::new_naive();
crc.update(b"123456789");
assert_eq!(crc.digest(), 0xE3069283);
simd
use librscrc::prelude::*;
// compute crc32
let mut crc = Crc32::new_simd();
crc.update(b"123456789");
assert_eq!(crc.digest(), 0xCBF43926);
//compute crc32c
let mut crc = Crc32C::new_simd();
crc.update(b"123456789");
assert_eq!(crc.digest(), 0xE3069283);
Custom polynomial example
use librscrc::prelude::*;
// you can provide a 33 bit polynomial or a 32 bit polynomial.
let mut crc = CustomCrc32::new_simd(0x104C11DB7u64);
crc.update(b"123456789");
assert_eq!(crc.digest(), 0xCBF43926);