Crate fcrc

Crate fcrc 

Source
Expand description

§FCRC

Fast-CRC is a generic CRC implementation using SIMD instructions when available and a fallback when not.

Feature List:

  • A reference implementation that operates bit-by-bit. Correct, concise, and readable.
  • A built in library of known CRC parameters, and the ability to easily use custom ones.
  • A slice_by implementation that uses lookup tables of size 256 * N for N >= 1. This is the ‘standard’ implementation.
  • Excellent test coverage for each implementation and each of the well known algorithms, against the reference implementation and against other rust CRC crates.
  • Benchmarks againts each implementation and against other rust CRC crates.
  • Comparable performance to other CRC crates.
  • An x86 implementation using sse4.1 and pclmulqdq intrinsics, base on the intel whitepaper on the topic.
  • An x86 implementation using sse4.1 crc intrinsics, when the selected algorithm is correct.
  • An aarch64 implementation using crc intrinsics, when the selected algorithm is correct.

Benchmarking results to be added to the README.

Re-exports§

pub use models::Model;
pub use generic::Crc;

Modules§

generic
cbindgen:ignore Generic CRC trait
models
cbindgen:ignore Contains lists of models from Catalogue of parametrised CRC algorithms.
pclmulqdq
cbindgen:ignore Based on the intel white-paper Fast CRC Computation for Generic Polynomials Using PCLMULQDQ Instruction
reference
cbindgen:ignore The reference implementation, to which other implementations are checked.
slice_by
cbindgen:ignore Contains a Slice-By-N crc implementation.