#crc #crc32 #checksum #hash #crc16 #lookup-tables

yanked fcrc

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

0.1.0 Nov 8, 2021

#9 in #crc16

MIT/Apache

140KB
2K SLoC

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.

Dependencies

~0–1.1MB
~13K SLoC