cb-digest

Crates.iocb-digest
lib.rscb-digest
version0.1.0
created_at2025-09-18 11:32:24.843243+00
updated_at2025-09-18 11:32:24.843243+00
descriptionOptimised T-Digest algorithm in Rust
homepage
repositoryhttps://github.com/ctrlb-hq/cb-digest
max_upload_size
id1844582
size53,334
Adarsh Srivastava (adarshsrivastava11)

documentation

README

Optimised T-Digest algorithm in rust

Based on - original This implementation is following Facebook folly's implementation

Installation

Add this to your Cargo.toml:

[dependencies]
cb-digest = "0.1"

then you are good to go. If you are using Rust 2015 you have to extern crate cb-digest to your crate root as well.

Example

use cb_digest::TDigest;

let t = TDigest::new_with_size(100);
let values: Vec<f64> = (1..=1_000_000).map(f64::from).collect();
let t = t.merge_sorted(values);
let ans = t.estimate_quantile(0.99);
let expected: f64 = 990_000.0;
let percentage: f64 = (expected - ans).abs() / expected;

assert!(percentage < 0.01);
Commit count: 43

cargo fmt