Repository navigation
Add generic Crc32/Crc64 classes and crc64_redis - #155
Conversation
Add table-driven CRC classes that take catalogue parameters (poly in normal notation, init, xorout, reflected), in both pure Python and native Rust. The native classes build their table once, borrow bytes input without copying, and release the GIL for large inputs. Add crc64_redis (CRC-64/REDIS, Jones polynomial) on top of them, with the same module layout as crc32c/crc64c. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #155 +/- ##
=====================================
Coverage 0.00% 0.00%
=====================================
Files 32 34 +2
Lines 2178 2249 +71
=====================================
- Misses 2178 2249 +71
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Building the lookup table with Crc64() at import time cost ~120 µs per process. hash/__init__.py always imports the module to expose crc64_redis_python, so this cost was paid even when the native version is used. Embed the table as a literal, like crc64c and crc32c do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Regarding |
Time for a |
Add table-driven CRC classes that take catalogue parameters (poly in normal notation, init, xorout, reflected), in both pure Python and native Rust. The native classes build their table once, borrow bytes input without copying, and release the GIL for large inputs.
Add crc64_redis (CRC-64/REDIS, Jones polynomial) on top of them, with the same module layout as crc32c/crc64c.
resolves #156
This PR was created with the assistance of an AI model (Claude Opus 5.5)