Skip to main content

crc-rust (Rust mirror of Nicoretti/crc)

Stage-1 Rust mirror of Nicoretti/crc (BSD-2-Clause, original by Nicola Coretti). Behavior-identical port of src/crc/_crc.py exposed as the crc._crc extension module via PyO3, with thin crc/__init__.py + crc/__main__.py re-export shims preserving the original public API (Calculator, Register, TableBasedRegister, Crc8/16/32/64, create_lookup_table, main, ...).

Layout (publishable)

One implementation, two distributions:

  • crc-core/ — reusable pure-Rust core crate crc-rust-core (crates.io). No Python dependency: rlib, cargo test clean, miri-clean. Rust consumers depend on this crate directly.
  • src/lib.rs — thin PyO3 binding crate crc-rust calling that same core. Ships on PyPI as distribution crc-rust; the import name is unchanged (import crc), so users swap the install with zero code changes: pip install crc-rust instead of pip install crc.
  • crc/ — Python shims (__init__.py, __main__.py).
  • release.toml — release configuration (names, version, platforms, Python versions, publishing repo + workflow identity, license, upstream attribution). Read by rustsmith release-prep; see docs/RELEASE.md.

No redesign: byte-at-a-time table lookup ships, same as the original. Slice-by-8/16 is a Stage-2 optimization candidate, not part of the mirror.

Install

pip install crc-rust        # Python (import crc)
cargo add crc-rust-core     # Rust

Release

Publishing is a manual step after review; rustsmith never pushes. Prepare and verify everything locally, then follow the generated setup instructions:

rustsmith release-prep --project mirror/crc --fork <fork> --opt <opt> \
  --recon-out <recon> --out <dist>

See docs/RELEASE.md (releasing converted projects) and the generated TRUSTED_PUBLISHING_SETUP.md in the output directory.

Metadata

Release files for crc-rust 0.1.0

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

Source distribution (sdist)

Source distribution for crc-rust 0.1.0
File Size Uploaded Provenance
crc_rust-0.1.0.tar.gz 164.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for crc-rust 0.1.0
File Interpreter ABI Platform
crc_rust-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details

Total release size: 480.2 kB

Release files / crc_rust-0.1.0.tar.gz

Download URL crc_rust-0.1.0.tar.gz
Size 164.3 kB
Tags Source
SHA-256 checksum
How to use checksums
117117b750c16f2a29d80e0ce22e5c6d50d75d5d3af32c71d06c467bb514a294
BLAKE2b-256 checksum
How to use checksums
7206f7aecd3f9cc942632dcb14d3c932d334411f9e06a78dd0e5e057b91e2be2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crc_rust-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL crc_rust-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
Size 315.9 kB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
437c8c404883ad658fad9547b4beb7d1e1d6178117d5e72c4d16c885ebfbeafa
BLAKE2b-256 checksum
How to use checksums
561f9344ea8d14ee2fddecbb725f45ee4e80f7a27f09c88828387b78aef6426c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for crc-rust 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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