sketches-rust
The port of the DDSketch rust implementation.
Features
- CubicallyInterpolatedMapping
- LogarithmicMapping
- CollapsingHighestDenseStore: collapse the highest bucket when reach specified size
- CollapsingLowestDenseStore: collapse the lowest bucket when reach specified size
- UnboundedSizeDenseStore: unlimited bucket
- Merge with other instance
- Serialize & Deserialize
Usage
Run the following Cargo command in your project directory:
cargo add sketches-rust
Or add the following line to your Cargo.toml:
sketches-rust = "0.2.3"
Query:
use DDSketch;
let mut d = collapsing_lowest_dense.unwrap;
d.accept;
d.accept;
d.accept;
let c = d.get_count;
assert_eq!;
let q = d.get_value_at_quantile.unwrap;
assert!;
Merge:
use DDSketch;
let mut d1 = collapsing_lowest_dense.unwrap;
d1.accept;
d1.accept;
d1.accept;
assert_eq!;
let mut d2 = collapsing_lowest_dense.unwrap;
d2.accept;
d2.accept;
d2.accept;
assert_eq!;
d2.merge_with.unwrap;
assert_eq!;
Serialize:
use DDSketch;
let mut d = unbounded_dense.unwrap;
d.accept;
d.accept;
d.accept;
d.accept;
d.accept;
println!;
Deserialize:
use DDSketch;
let mut input = vec!;
let mut d = decode.unwrap;
assert_eq!;