skillfed

crc32c

A python package implementing the crc32c algorithm in hardware and software

crc32c Copyleft license LGPL-2.1-or-later Active 49 v2.8 released

Install

crc32c on PyPI

pip

pip install crc32c

uv

uv add crc32c

poetry

poetry add crc32c

Package 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

License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)Operating System :: OS IndependentProgramming Language :: CProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

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...

Read as markdown · JSON record · Source repository

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
crc32c checksumhardware accelerated crc32ccrc32 hash algorithmdata integrity verificationfast checksum computationsse 4.2 crc32carm crc32 support

Similar packages