Releases: apache/datasketches-rust
Releases · apache/datasketches-rust
0.3.0
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
0.2.0
What's Changed
- chore: Cargo project bootstrap by @notfilippo in #6
- chore: Add missing license headers by @freakyzoidberg in #7
- ci: Enable squash merge and disable wiki by @Xuanwo in #8
- chore: Fix formatting and wording in README.md by @tisonkun in #9
- feat: HLL backend implementation by @notfilippo in #1
- ci: Bootstrap basic Rust CI by @tisonkun in #13
- ci: install rust toolchain without actions by @tisonkun in #16
- chore: fixup new typos glossary and linters by @tisonkun in #18
- chore: fine tune asfyaml settings by @tisonkun in #19
- chore: code tidy integration tests by @tisonkun in #20
- chore: check InsufficientData before index access by @tisonkun in #24
- feat(hll): implement HllUnion by @notfilippo in #25
- test(hll): HllUnion suite cleanup by @notfilippo in #26
- build: generate snapshots on the fly by @tisonkun in #29
- chore: Prevent compilation on big-endian targets by @tisonkun in #31
- feat: implement T-Digest by @tisonkun in #23
- refactor: implement MurmurHash3 internally by @tisonkun in #36
- chore: rustfmt rules on nightly by @tisonkun in #33
- chore: fix CI failing on main by @notfilippo in #40
- build: set up workspace layout by @tisonkun in #43
- feat: add xxhash64 by @PsiACE in #39
- feat: implement count-min sketch by @PsiACE in #38
- feat: add a generic error type by @tisonkun in #47
- chore: centralize DEFAULT_UPDATE_SEED by @tisonkun in #48
- feat: add theta sketch (part 1) by @ZENOTME in #45
- refactor: replace byteorder with SketchBytes and SketchSlice by @tisonkun in #49
- feat: add frequencies sketches by @PsiACE in #44
- chore: fine tune frequencies and theta sketches by @tisonkun in #51
- refactor: use new codec utils in TDigest and Frequencies sketches by @tisonkun in #52
- feat: implement bloom filter by @notfilippo in #53
- chore: prepare v0.2.0 release by @notfilippo in #57
- docs: document release process by @notfilippo in #61
- docs: add rustdoc examples across sketches by @PsiACE in #58
- ci: generate snaps stably by @tisonkun in #65
- chore: Remove required approving review count from PRs by @tisonkun in #66
- fix: tdigest quantile edge case by @tisonkun in #63
- feat: add theta sketch (part 2) by @ZENOTME in #59
New Contributors
- @notfilippo made their first contribution in #6
- @freakyzoidberg made their first contribution in #7
- @Xuanwo made their first contribution in #8
- @tisonkun made their first contribution in #9
- @PsiACE made their first contribution in #39
- @ZENOTME made their first contribution in #45
Full Changelog: https://github.com/apache/datasketches-rust/commits/0.2.0