histogram
A collection of histogram data structures
1.5.0
25M downloads/mo
#1860 most downloaded on crates.io
iopsystems/histogram
What this package is like to depend on
Last release 1 months ago
02 Jul 2026
Ships unpredictably
gaps range from 8 days to 10 months
Rarely documented
notes for 8 of 57 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
57 releases · first in 2015
10 releases in the last 12 months
see the full history below
Release timeline
57 releases · Jul 2015 to Jul 2026Releases
latest 57-
1.5.002 Jul 2026Release notes
Open source →What's Changed
- QuantileResult: Add into_entries by @Lorak-mmk in #24
- release: v1.5.0 by @brayniac in #25
New Contributors
- @Lorak-mmk made their first contribution in #24
Full Changelog: v1.4.1...v1.5.0
Release notes
Open source →Added
QuantilesResult::into_entries()— consumes the result and returns the quantile-to-bucketBTreeMapby value, allowing iterator transformations without borrowing from the original result.
-
1.4.120 May 2026Release notes
Open source →What's Changed
- Add mean() to borrowed CumulativeRO Ref views by @thinkingfish in #21
- release: v1.4.1 by @thinkingfish in #22
Full Changelog: v1.4.0...v1.4.1
Release notes
Open source →Added
- Midpoint-based
mean()on the borrowedCumulativeROHistogramRef/CumulativeROHistogram32Refviews. The mean is stored on the view (computed once at construction, or carried over from the owned histogram's cached value), somean()is a cheap field access exposed just likecount()— no per-call streaming computation — letting a zero-alloc reducer fold it in directly. ReturnsNonefor an empty histogram.
Changed
CumulativeROHistogramRef/CumulativeROHistogram32Refno longer implementEq(they now carry anf64mean);PartialEqis retained.
-
1.4.019 May 2026Release notes
Open source →Added
- Midpoint-based
mean()onCumulativeROHistogram/CumulativeROHistogram32— the mean of all observations, estimated from bucket midpoints, computed once at construction time acrossfrom_parts,From<&Histogram>, andFrom<&SparseHistogram>. ReturnsNonefor an empty histogram.
Changed
CumulativeROHistogram/CumulativeROHistogram32no longer implementEq(they now store anf64mean);PartialEqis retained. The borrowed*Refview types are unaffected.
- Midpoint-based
-
1.3.130 Apr 2026Release notes
Open source →What's Changed
- Plan: borrowed-view types for zero-allocation percentile queries by @thinkingfish in #16
- release: v1.3.1 by @thinkingfish in #17
Full Changelog: v1.3.0...v1.3.1
Release notes
Open source →Added
CumulativeROHistogramRef<'a>/CumulativeROHistogram32Ref<'a>andSparseHistogramRef<'a>/SparseHistogram32Ref<'a>— borrowed views over histogram storage that mirror the read-only API surface of the owned types. Lets columnar consumers compute quantiles directly off&[u32]slices without per-snapshot allocation or revalidation.from_parts_uncheckedconstructor on each ref type for hot-path use where invariants are already known to hold;from_partsvalidates as before.as_ref()onCumulativeROHistogram*andSparseHistogram*returning the matching ref view;From<&Owned> for OwnedRef<'_>for trait-based conversion.SampleQuantilesimpl on each ref type.
-
1.3.029 Apr 2026Release notes
Open source →What's Changed
- Add Notebook Kit site for h2histogram.org (alternative to #10) by @thinkingfish in #11
- Add u32 bucket counts as named sibling types by @thinkingfish in #12
- Add GitHub repo link to h2histogram site TOC by @thinkingfish in #13
- Add rezolus_memory example, comparing Histogram vs sparse memory footprint by @thinkingfish in #14
- release: v1.3.0 by @thinkingfish in #15
Full Changelog: v1.2.0...v1.3.0
Release notes
Open source →Added
Histogram32,AtomicHistogram32,SparseHistogram32, andCumulativeROHistogram32— u32-counter sibling types for all four histogram variants, generated from shared declarative macros- Sealed
CountandAtomicCounttraits abstracting the bucket counter width (implemented foru32/u64and their atomic counterparts) - Cross-width widening
Fromconversions (u32 → u64) for all four histogram families - Cross-width narrowing
TryFromconversions (u64 → u32) forHistogram,SparseHistogram, andCumulativeROHistogram - Cross-variant + narrowing
TryFrompaths for the snapshot pipeline:Histogram→CumulativeROHistogram32,Histogram→SparseHistogram32, andSparseHistogram→CumulativeROHistogram32 - u32 benchmark cases for
HistogramandAtomicHistogram rezolus_memoryexample comparingHistogram,SparseHistogram, andCumulativeROHistogrammemory footprints from Rezolus parquet recordings- README "Counter Width" and "Recommended Pipeline" sections, with matching
rustdoc in
lib.rs
Changed
CumulativeROHistogramcache-line threshold for linear-vs-binary search is now count-type-dependent (64 / size_of::<C>());total_countandindividual_countcontinue to returnu64
-
1.2.022 Apr 2026Release notes
Open source →What's Changed
- Add CumulativeROHistogram for fast quantile queries by @thinkingfish in #7
- release: v1.2.0 by @thinkingfish in #9
Full Changelog: v1.1.0...v1.2.0
Release notes
Open source →Added
CumulativeROHistogram, a read-only histogram variant with cumulative (prefix-sum) counts that enables O(log n) quantile lookups via binary search (with a linear-scan fallback for cache-line-sized data)From<&Histogram>andFrom<&SparseHistogram>conversions for constructing aCumulativeROHistogram- Quantile range query methods on
CumulativeROHistogramfor analytics use cases
-
1.1.006 Apr 2026Release notes
Open source →What's Changed
- chore: bump to 1.0.1-alpha.0 for next development iteration by @brayniac in #2
- fix: use PR workflow for dev version bump in tag-release by @brayniac in #3
- Add SampleQuantiles trait and Quantile type for histogram quantile queries by @thinkingfish in #5
- release: v1.1.0 by @thinkingfish in #6
New Contributors
- @thinkingfish made their first contribution in #5
Full Changelog: v1.0.0...v1.1.0
Release notes
Open source →Added
SampleQuantilestrait withquantiles()andquantile()methods, implemented for bothHistogramandSparseHistogramQuantilesResultstruct returning aBTreeMap<Quantile, Bucket>withtotal_count,min, andmaxbucket metadataQuantilenewtype wrapping validatedf64in0.0..=1.0, implementingOrd/Eqfor use as aBTreeMapkeyError::InvalidQuantilevariant for quantile validation errors
Deprecated
Histogram::percentiles()andHistogram::percentile()— useSampleQuantilestrait methods insteadSparseHistogram::percentiles()andSparseHistogram::percentile()— useSampleQuantilestrait methods insteadError::InvalidPercentile— useError::InvalidQuantileinstead
-
1.0.020 Mar 2026Release notes
Open source →What's Changed
New Contributors
Full Changelog: https://github.com/iopsystems/histogram/commits/v1.0.0
-
0.11.520 Mar 2026Nothing published for this version
-
0.11.413 Jan 2026Nothing published for this version
-
0.11.304 Mar 2025Nothing published for this version
-
0.11.217 Jan 2025Nothing published for this version
-
0.11.131 Oct 2024Nothing published for this version
-
0.11.012 Jun 2024Nothing published for this version
-
0.10.203 Jun 2024Nothing published for this version
-
0.10.103 May 2024Nothing published for this version
-
0.10.001 Apr 2024Nothing published for this version
-
0.9.107 Feb 2024Nothing published for this version
-
0.9.016 Jan 2024Nothing published for this version
-
0.8.412 Jan 2024Nothing published for this version
-
0.8.325 Oct 2023Nothing published for this version
-
0.8.224 Oct 2023Nothing published for this version
-
0.8.123 Oct 2023Nothing published for this version
-
0.8.012 Oct 2023Nothing published for this version
-
0.7.407 Aug 2023Nothing published for this version
-
0.7.301 Jun 2023Nothing published for this version
-
0.7.224 Mar 2023Nothing published for this version
-
0.7.113 Feb 2023Nothing published for this version
-
0.7.015 Jan 2023Nothing published for this version
-
0.6.902 May 2018Nothing published for this version
-
0.6.817 Nov 2017Nothing published for this version
-
0.6.702 Sep 2017Nothing published for this version
-
0.6.618 May 2017Nothing published for this version
-
0.6.516 May 2017Nothing published for this version
-
0.6.406 Feb 2017Nothing published for this version
-
0.6.313 Sep 2016Nothing published for this version
-
0.6.209 Sep 2016Nothing published for this version
-
0.6.113 Jun 2016Nothing published for this version
-
0.6.009 Jun 2016Nothing published for this version
-
0.5.108 Jun 2016Nothing published for this version
-
0.5.007 Jun 2016Nothing published for this version
-
0.4.028 May 2016Nothing published for this version
-
0.3.615 Mar 2016Nothing published for this version
-
0.3.517 Jan 2016Nothing published for this version
-
0.3.424 Dec 2015Nothing published for this version
-
0.3.320 Dec 2015Nothing published for this version
-
0.3.202 Dec 2015Nothing published for this version
-
0.3.115 Nov 2015Nothing published for this version
-
0.3.008 Nov 2015Nothing published for this version
-
0.2.228 Oct 2015Nothing published for this version
-
0.2.128 Sep 2015Nothing published for this version
-
0.2.007 Sep 2015Nothing published for this version
-
0.1.604 Sep 2015Nothing published for this version
-
0.1.529 Aug 2015Nothing published for this version
-
0.1.406 Aug 2015Nothing published for this version
-
0.1.328 Jul 2015Nothing published for this version
-
0.1.218 Jul 2015Nothing published for this version