Python CRC Calculation Library

1.8.1 · active · verified Thu Apr 16

libscrc is a Python library designed for calculating various Cyclic Redundancy Check (CRC) values, including CRC3, CRC4, CRC8, CRC16, CRC24, CRC32, CRC64, and CRC82. The latest version is 1.8.1, released on August 18, 2022. While releases are not frequent, the project shows ongoing maintenance and issue tracking through its GitHub repository.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to calculate common CRC types using `libscrc` functions like `modbus`, `intel`, `crc32`, and `xmodem`. It also includes an example of gradual CRC calculation, a feature supported since version 1.4+.

import libscrc

# Calculate CRC16 (Modbus RTU)
data_modbus = b'\x01\x02\x03\x04'
crc_modbus = libscrc.modbus(data_modbus)
print(f"CRC16 (Modbus) for {data_modbus.hex()}: {crc_modbus:04X}")

# Calculate CRC8 (Intel Hex)
data_intel = b'1234'
crc_intel = libscrc.intel(data_intel)
print(f"CRC8 (Intel Hex) for {data_intel.decode()}: {crc_intel:02X}")

# Calculate CRC32 (File/WinRAR)
data_crc32 = b'example data'
crc_file = libscrc.crc32(data_crc32)
print(f"CRC32 (File) for '{data_crc32.decode()}': {crc_file:08X}")

# Gradual CRC calculation (e.g., XMODEM), supported since v1.4+
data_part1 = b'hello'
data_part2 = b'world'
initial_crc = libscrc.xmodem(data_part1)
final_crc = libscrc.xmodem(data_part2, initial_crc)
print(f"CRC16 (XMODEM) gradually: {final_crc:04X}")

view raw JSON →