Skip to content

stbrumme/crc32

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Fast CRC32

This is a mirror of my CRC32 library hosted at https://create.stephan-brumme.com/crc32/

Features in a nutshell:

  • C++ code, single file
  • the fastest algorithms need about 1 CPU cycle per byte
  • endian-aware
  • support for multi-threaded computation
  • runs even on Arduino, Raspberry Pi, etc.
  • quite long posting about it on https://create.stephan-brumme.com/crc32/, describing each implemented algorithm in detail

Algorithms:

  • bitwise

  • branch-free bitwise

  • half-byte

  • tableless full-byte

  • Sarwate's original algorithm

  • slicing-by-4

  • slicing-by-8

  • slicing-by-16

  • crc32_combine() "merges" two indepedently computed CRC32 values which is the basis for even faster multi-threaded calculation

See my website https://create.stephan-brumme.com/crc32/ for documentation, code examples and a benchmark.