Skip to main content
Files added late

3 files were added to this release more than 14 days after its initial publication. Inspect the release files before installing.

The software in this package is a Python module for generating objects that compute the Cyclic Redundancy Check (CRC). There is no attempt in this package to explain how the CRC works. There are a number of resources on the web that give a good explanation of the algorithms. Just do a Google search for “crc calculation” and browse till you find what you need. Another resource can be found in chapter 20 of the book “Numerical Recipes in C” by Press et. al.

This package allows the use of any 8, 16, 24, 32, or 64 bit CRC. You can generate a Python function for the selected polynomial or an instance of the Crc class which provides the same interface as the md5 and sha modules from the Python standard library. A Crc class instance can also generate C/C++ source code that can be used in another application.

Guidelines

Documentation is available from the doc strings. It is up to you to decide what polynomials to use in your application. If someone has not specified the polynomials to use, you will need to do some research to find one suitable for your application. Examples are available in the unit test script test.py. You may also use the predefined module to select one of the standard polynomials.

If you need to generate code for another language, I suggest you subclass the Crc class and replace the method generateCode. Use generateCode as a model for the new version.

Dependencies

Python Version

The package has separate code to support the 2.x and 3.x Python series.

For the 2.x versions of Python, these versions have been tested:

  • 2.4

  • 2.5

  • 2.6

  • 2.7

It may still work on earlier versions of Python 2.x, but these have not been recently tested.

For the 3.x versions of Python, these versions have been tested:

  • 3.1

Building C extension

To build the C extension, the appropriate compiler tools for your platform must be installed. Refer to the Python documentation for building C extensions for details.

Installation

The crcmod package is installed using distutils. Run the following command:

python setup.py install

If the extension module builds, it will be installed. Otherwise, the installation will include the pure Python version. This will run significantly slower than the extension module but will allow the package to be used.

For Windows users who want to use the mingw32 compiler, run this command:

python setup.py build --compiler=mingw32 install

For Python 3.x, the install process is the same but you need to use the 3.x interpreter.

Unit Testing

The crcmod package has a module crcmod.test, which contains unit tests for both crcmod and crcmod.predefined.

When you first install crcmod, you should run the unit tests to make sure everything is installed properly. The test script performs a number of tests including a comparison to the direct method which uses a class implementing polynomials over the integers mod 2.

To run the unit tests on Python >=2.5:

python -m crcmod.test

Alternatively, in the test directory run:

python test_crcmod.py

Code Generation

The crcmod package is capable of generating C functions that can be compiled with a C or C++ compiler. In the test directory, there is an examples.py script that demonstrates how to use the code generator. The result of this is written out to the file examples.c. The generated code was checked to make sure it compiles with the GCC compiler.

License

The crcmod package is released under the MIT license. See the LICENSE file for details.

Contributors

Craig McQueen

Release files for crcmod 1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Files added late

3 files were uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release files before installing.

Source distribution (sdist)

Source distribution for crcmod 1.7
File Size Uploaded
crcmod-1.7.tar.gz 89.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for crcmod 1.7
File Interpreter ABI Platform
crcmod-1.7.win32-py3.1.msi Details
crcmod-1.7.win32-py2.7.msi Details
crcmod-1.7.win32-py2.6.msi Details

Total release size: 482.9 kB

Release files / crcmod-1.7.tar.gz

Download URL crcmod-1.7.tar.gz
Size 89.7 kB
Tags Source
SHA-256 checksum
How to use checksums
dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e
BLAKE2b-256 checksum
How to use checksums
6bb0e595ce2a2527e169c3bcd6c33d2473c1918e0b7f6826a043ca1245dd4e5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / crcmod-1.7.win32-py3.1.msi

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL crcmod-1.7.win32-py3.1.msi
Size 131.1 kB
Tags Source
SHA-256 checksum
How to use checksums
50586ab48981f11e5b117523d97bb70864a2a1af246cf6e4f5c4a21ef4611cd1
BLAKE2b-256 checksum
How to use checksums
b950ecc32553cb0570bed5cace11af641a544792268aae186381f9aaf4873d02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / crcmod-1.7.win32-py2.7.msi

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL crcmod-1.7.win32-py2.7.msi
Size 131.1 kB
Tags Source
SHA-256 checksum
How to use checksums
737fb308fa2ce9aed2e29075f0d5980d4a89bfbec48a368c607c5c63b3efb90e
BLAKE2b-256 checksum
How to use checksums
e992de3272d0bc951f93a871eff1b08011274865b6622d05ad304c7687f8bf86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / crcmod-1.7.win32-py2.6.msi

File added late

This file was uploaded more than 14 days after the first file in this release.

While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.

We recommend inspecting the release file before installing.

Download URL crcmod-1.7.win32-py2.6.msi
Size 131.1 kB
Tags Source
SHA-256 checksum
How to use checksums
69a2e5c6c36d0f096a7beb4cd34e5f882ec5fd232efb710cdb85d4ff196bd52e
BLAKE2b-256 checksum
How to use checksums
933ed35aac587d583600f46281f7a794500b02066e095335091bd71f750085f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.7 This release

4 release files

1.6.1

1 release file

1.6

1 release file

1.5

1 release file

1.4

1.3

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page