License & credits
This is a Windows port of Mark Adler's CRC-32C posted on StackOverlow.
Porting was done by Robert Važan who also introduced several optimizations and unit tests that weren't part of the original code from StackOverflow.
C++ code is distributed under zlib license. It was originally created by Mark Adler and subsequently modified by Robert Važan.
.NET code is distributed under BSD license. All .NET code was written by Robert Važan.
||CRC-32C for C++ and .NET
||0x1EDC6F41 / 0x82F63B78
||configurable initial value, chainable, no pre/post-processing, continuous bit order
||Intel CRC32 instruction (x3) in hardware
Sliced table-driven software fallback
||20 GB/s in hardware
2 GB/s in software
||Crc32C (C++), Crc32C.NET (.NET)
||crc32c-hw-22.214.171.124z (C++ and .NET)
||crc32c-hw and Crc32C.NET on Bitbucket
||BSD license, zlib license
||Robert Važan, Mark Adler