crc32c
A python package implementing the crc32c algorithm in hardware and software
Install
crc32c on PyPI
pip
pip install crc32cuv
uv add crc32cpoetry
poetry add crc32cPackage facts
| License | LGPL-2.1-or-later (copyleft) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 300 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: crc32c-2.8-cp310-cp310-macosx_10_9_universal2.whl; crc32c-2.8-cp310-cp310-macosx_10_9_x86_64.whl; crc32c-2.8-cp310-cp310-macosx_11_0_arm64.whl; crc32c-2.8-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; crc32c-2.8-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; crc32c-2.8-cp310-cp310-musllinux_1_2_aarch64.whl; crc32c-2.8-cp310-cp310-musllinux_1_2_x86_64.whl; crc32c-2.8-cp310-cp310-win32.whl; crc32c-2.8-cp310-cp310-win_amd64.whl; crc32c-2.8-cp311-cp311-macosx_10_9_universal2.whl; crc32c-2.8-cp311-cp311-macosx_10_9_x86_64.whl; crc32c-2.8-cp311-cp311-macosx_11_0_arm64.whl; crc32c-2.8-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; crc32c-2.8-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; crc32c-2.8-cp311-cp311-musllinux_1_2_aarch64.whl; crc32c-2.8-cp311-cp311-musllinux_1_2_x86_64.whl; crc32c-2.8-cp311-cp311-win32.whl; crc32c-2.8-cp311-cp311-win_amd64.whl; crc32c-2.8-cp312-cp312-macosx_10_13_universal2.whl; crc32c-2.8-cp312-cp312-macosx_10_13_x86_64.whl
About crc32c
from the package's own PyPI description — quoted content, verbatim
crc32c
.. image:: https://github.com/ICRAR/crc32c/workflows/Build%20and%20release%20to%20PyPI/badge.svg?branch=master
.. image:: https://badge.fury.io/py/crc32c.svg :target: https://badge.fury.io/py/crc32c
This package implements the crc32c checksum algorithm. It automatically chooses between a hardware-based implementation (using the CRC32C SSE 4.2 instruction of Intel CPUs, and the crc32* instructions on ARMv8 CPUs), or a software-based one when no hardware support can be found.
Because crc32c is in PyPI, you can install it with::
pip install crc32c
Supported platforms are Linux and OSX using the gcc and clang compilers, and Windows using the Visual Studio compiler. Other compilers in Windows (MinGW for instance) might work. Binary wheels are also provided in PyPI for major platforms/architectures.
The project is using certain gcc/clang compiler extensions to support building hardware-specific functions that might not be supported by older compiler versions.
Usage
API ^^^
The core function exposed by this module is crc32c(data, value=0, gil_release_mode=-1).
It computes the CRC32C checksum of data
starting with an initial value...
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Computes CRC32C checksums using hardware acceleration (SSE 4.2 on Intel, ARMv8 on ARM) when available, falling back to a software implementation otherwise.
Medium install friction due to compiled C extensions; however, pre-built wheels are provided for Python 3.7–3.14 across Linux, macOS (including ARM64), Windows, and musl-based systems. The package is actively maintained with a recent release (2025-10-17) and no runtime dependencies.
Licensed under LGPL-2.1-or-later (copyleft), which requires derivative works and modifications to be distributed under the same license; incorporates code under BSD-2-Clause, BSD-3-Clause, and custom licenses. Verify compatibility with your project's licensing before use.
Usage
import crc32c
# Compute checksum of data
checksum = crc32c.crc32c(b'hello world')
print(checksum) # 3381945770
# Or use the hash-like interface
hash_obj = crc32c.CRC32CHash()
hash_obj.update(b'hello')
hash_obj.update(b' world')
print(hash_obj.checksum)
Requires a C compiler (gcc/clang on Linux/macOS, Visual Studio on Windows) if installing from source; pre-built wheels available for common platforms.
Verdict: A well-maintained, actively developed package for fast CRC32C computation with transparent hardware acceleration. No known vulnerabilities, broad Python version support (3.7–3.14), and wide platform coverage via pre-built wheels. LGPL-2.1-or-later copyleft license requires careful review if bundling or modifying; suitable for data integrity checks in systems where hardware acceleration matters.
Needs verification
- Performance improvement magnitude over software-only implementations in typical workloads
- Compatibility with free-threaded Python builds beyond the documented GIL-release behavior
- Real-world adoption and integration patterns in production systems
Similar packages
unclear · top 1,000 on PyPI
kafka-pythonpermissive · top 1,000 on PyPI
mpmathpermissive · top 1,000 on PyPI
google-cloud-storagepermissive · top 1,000 on PyPI
httpx-ssepermissive · top 1,000 on PyPI
py-cpuinfopermissive · top 1,000 on PyPI
ijsonpermissive · top 1,000 on PyPI
jaxpermissive · top 1,000 on PyPI
sse-starlettepermissive · top 1,000 on PyPI
nvidia-cuda-runtimeunclear · top 1,000 on PyPI