A small, dependency-free Count-Min Sketch in Rust — approximate frequency counts over high-cardinality streams (device fingerprints, IPs, event keys) in sublinear memory. Library + CLI.
use cmsketch::CountMinSketch;
let mut cms = CountMinSketch::with_error(0.001, 0.01); // ~0.1% error, 99% confidence
cms.add(b"device-123", 1);
cms.add(b"device-123", 1);
assert!(cms.estimate(b"device-123") >= 2); // never underestimatescat events.txt | cmsketch device-123 1.2.3.4
# device-123 42
# 1.2.3.4 7cargo testEstimates never undercount; overcounting is bounded by the configured error. MIT licensed.