Repository navigation
Rensa 0.5.0 introduces R-MinHash and C-MinHash algorithm version 2, with accuracy, performance, and deduplication correctness improvements.
Upgrading
Rebuild persisted R-MinHash and C-MinHash signatures, digest matrices, and LSH indexes from the original tokens. Version 1 serialized sketches and indexes are intentionally rejected. Do not compare or combine raw digests from different algorithm versions.
This compatibility change is why the release is 0.5.0 rather than 0.4.2.
Changes
- R-MinHash v2 processes the full token set with seeded bucket rounds, SIMD fallback, and conservative rank filtering. Token order, repeated tokens, incremental updates, and merges retain their defined invariants.
- C-MinHash v2 corrects correlated affine permutations and accelerates streaming deduplication with an exact candidate index.
- Fixes LSH band double-counting when existing-index and batch matches overlap, NaN threshold fallback, and 32-bit hashing/indexing edge cases.
- Strengthens seed compatibility, Python input lifetime handling, serialization, accuracy, architecture, and benchmark regression checks.
- Removes redundant sketch/benchmark work and unused Rust dependencies, and patches the benchmark HTTP dependency.
Includes #88 and #89. Performance depends on workload and CPU: selected sketch and indexed-query cases improved substantially, while small slowdowns remain in some measured cases.
Install
python -m pip install --upgrade rensa==0.5.0
python -c "from importlib.metadata import version; print(version('rensa'))"CPython 3.8 or newer remains supported. Platform and interpreter wheel availability varies; source builds require Rust 1.83 or newer.