Rapid CRC
The fastest crc32 and crc32c implemenations on npm
Install
npm install rapid-crc
Usage
const rapidCrc = const crc1 = rapidCrc// -> 2297840959const crc2 = rapidCrc// -> 2413851447
Details
crc32
Uses slice-by-32 (based on slice-by-8 by intel and slice-by-16 by stehpan brumme). Increasing the size of the lookup to 32 gave the best performance on my machine (2015 macbook pro, i5, 8GB), by 64 > was slower. I think this is due to the amount of data being loaded per cache-line.
crc32c (Castagnoli)
Uses SSE4.2.
Performance
crc32
$ node --versionv10.16.1$ node performance/benchmark-crc32.jsrapid-crc x 1,593,095 ops/sec ±0.86% turbo x 608,301 ops/sec ±2.11% sheetjs x 283,236 ops/sec ±0.92% Fastest is rapid-crc
crc32c
$ node --versionv10.16.1$ node performance/benchmark-crc32c.jsrapid-crc x 2,677,754 ops/sec ±0.53% turbo x 617,280 ops/sec ±0.45% sse4_crc32 x 2,353,431 ops/sec ±0.57% Fastest is rapid-crc