Changelog
Breaking changes
CountMinSketchnow has a type parameter for the count type. Possible values areu8tou64andi8toi64.HllUnion::get_resultis renamed toHllUnion::to_sketch.update_f32andupdate_f64are removed fromThetaSketch. Usehash_value's wrapper instead.- All sketches are now gated by a feature flag. You need to enable the feature flag to use the sketch. For example, to use
CountMinSketch, you need to enable thecountminfeature.
Notable changes
- The MSRV (Minimum Supported Rust Version) is now 1.86.0.
New features
- New module
hash_valueprovides several value wrappers for matching concrete hashing strategies. CountMinSketchwith unsigned values now supportshalveanddecayoperations.CpcSketchandCpcUnionare now available for cardinality estimation.CpcWrapperis now available for reading estimation from a serialized CpcSketch without full deserialization.FrequentItemsSketchnow supports serde for any value implementFrequentItemValue(builtin supports fori64,u64, andString).- Expose
codec::SketchBytes,codec::SketchSlice, andFrequentItemValueas public API. hll::Couponis now public. You can calculate the coupon and reuse it multiple times avoiding the overhead of hashing multiple times.
Commit history
- docs: document build and test workflows by @PsiACE in #69
- chore: enable more convenient GitHub features by @tisonkun in #74
- chore: correct CountMinSketch::suggest_num_hashes panic docs by @tisonkun in #73
- feat: add halve and decay to countmin sketch of unsigned values by @PsiACE in #71
- chore: update README and add CHANGELOG by @tisonkun in #78
- refactor: remove unnecessary allocations in error formatting by @EricccTaiwan in #79
- test: use snapshots by @tisonkun in #80
- feat: impl CpcSketch by @tisonkun in #75
- refactor!: rename get_result to to_sketch by @tisonkun in #81
- chore: code tidy for FrequentItems and impl for more value type by @tisonkun in #82
- chore: define static lookup table as static variables by @tisonkun in #83
- feat: support cpcsketch serde by @tisonkun in #84
- refactor: sort PairTable values with std sort_unstable by @tisonkun in #86
- chore(tdigest): better handle Centroid adds by @tisonkun in #88
- chore: check seed for CpcSketch and CountMinSketch by @tisonkun in #85
- refactor: expose codec and add centralized Family by @tisonkun in #91
- chore: Remove early development caution warning by @tisonkun in #94
- fix(bloom): align builder parameters with java implementation by @notfilippo in #93
- chore(x): add doc lint by @notfilippo in #95
- feat(theta): compact sketch serde v3/v4 by @ZENOTME in #77
- refactor: export FrequentItemValue and improve docs by @tisonkun in #98
- feat: impl CpcWrapper by @tisonkun in #101
- chore: simplify codec checks code by @tisonkun in #102
- chore: fine tune binomial_bounds.rs code by @tisonkun in #103
- chore(theta): flatten preamble_longs branches for clippy by @Xuanwo in #104
- fix: comment and assertions inconsistency by @YichiZhang0613 in #106
- feat(theta): introduce intersection theta set operation by @ZENOTME in #100
- fix(theta): update compact method to use is_empty for consistency by @ZENOTME in #107
- chore: update copyright year in NOTICE by @caicancai in #110
- Made update_with_coupon public by @fulmicoton-dd in #113
- chore: remove incomplete examples module by @caicancai in #114
- tests: add boundary tests for bit_pack and CpcSketch by @YichiZhang0613 in #108
- feat(hll): expose coupon fn and improve update_with_coupon docs by @notfilippo in #116
- fix(hll): update silently dropped after deserializing a compact List sketch by @notfilippo in #117
- chore: Add back required approving review count to PR settings by @tisonkun in #119
- refactor: introduce hash_value for compatible hashing by @tisonkun in #118
- refactor: gate sketches with feature flags by @tisonkun in #120
- chore: changelog and release docs by @tisonkun in #121
- fix: correct assetion logic by @tabac in #122
- test: for hll::Array4::shift_to_bigger_cur_min by @tisonkun in #123
- chore: bump version to 0.3.0 by @ZENOTME in #125
- chore: fixup signature verification commands in RELEASE.md by @tisonkun in #124
- chore: ensure lockfile up-to-date by @tisonkun in #126
New Contributors
- @EricccTaiwan made their first contribution in #79
- @YichiZhang0613 made their first contribution in #106
- @caicancai made their first contribution in #110
- @fulmicoton-dd made their first contribution in #113
- @tabac made their first contribution in #122
Full Changelog: 0.2.0...0.3.0