PackageTrack
Sign in Get early access

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 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 57
  1. 1.5.0 02 Jul 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.4.1...v1.5.0

    Open source →
    Release notes

    Added

    • QuantilesResult::into_entries() — consumes the result and returns the quantile-to-bucket BTreeMap by value, allowing iterator transformations without borrowing from the original result.
    Open source →
  2. 1.4.1 20 May 2026
    Release notes

    What's Changed

    Full Changelog: v1.4.0...v1.4.1

    Open source →
    Release notes

    Added

    • Midpoint-based mean() on the borrowed CumulativeROHistogramRef / CumulativeROHistogram32Ref views. The mean is stored on the view (computed once at construction, or carried over from the owned histogram's cached value), so mean() is a cheap field access exposed just like count() — no per-call streaming computation — letting a zero-alloc reducer fold it in directly. Returns None for an empty histogram.

    Changed

    • CumulativeROHistogramRef / CumulativeROHistogram32Ref no longer implement Eq (they now carry an f64 mean); PartialEq is retained.
    Open source →
  3. 1.4.0 19 May 2026
    Release notes

    Added

    • Midpoint-based mean() on CumulativeROHistogram / CumulativeROHistogram32 — the mean of all observations, estimated from bucket midpoints, computed once at construction time across from_parts, From<&Histogram>, and From<&SparseHistogram>. Returns None for an empty histogram.

    Changed

    • CumulativeROHistogram / CumulativeROHistogram32 no longer implement Eq (they now store an f64 mean); PartialEq is retained. The borrowed *Ref view types are unaffected.
    Open source →
  4. 1.3.1 30 Apr 2026
    Release notes

    What's Changed

    Full Changelog: v1.3.0...v1.3.1

    Open source →
    Release notes

    Added

    • CumulativeROHistogramRef<'a> / CumulativeROHistogram32Ref<'a> and SparseHistogramRef<'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_unchecked constructor on each ref type for hot-path use where invariants are already known to hold; from_parts validates as before.
    • as_ref() on CumulativeROHistogram* and SparseHistogram* returning the matching ref view; From<&Owned> for OwnedRef<'_> for trait-based conversion.
    • SampleQuantiles impl on each ref type.
    Open source →
  5. 1.3.0 29 Apr 2026
    Release notes

    What's Changed

    Full Changelog: v1.2.0...v1.3.0

    Open source →
    Release notes

    Added

    • Histogram32, AtomicHistogram32, SparseHistogram32, and CumulativeROHistogram32 — u32-counter sibling types for all four histogram variants, generated from shared declarative macros
    • Sealed Count and AtomicCount traits abstracting the bucket counter width (implemented for u32/u64 and their atomic counterparts)
    • Cross-width widening From conversions (u32 → u64) for all four histogram families
    • Cross-width narrowing TryFrom conversions (u64 → u32) for Histogram, SparseHistogram, and CumulativeROHistogram
    • Cross-variant + narrowing TryFrom paths for the snapshot pipeline: HistogramCumulativeROHistogram32, HistogramSparseHistogram32, and SparseHistogramCumulativeROHistogram32
    • u32 benchmark cases for Histogram and AtomicHistogram
    • rezolus_memory example comparing Histogram, SparseHistogram, and CumulativeROHistogram memory footprints from Rezolus parquet recordings
    • README "Counter Width" and "Recommended Pipeline" sections, with matching rustdoc in lib.rs

    Changed

    • CumulativeROHistogram cache-line threshold for linear-vs-binary search is now count-type-dependent (64 / size_of::<C>()); total_count and individual_count continue to return u64
    Open source →
  6. 1.2.0 22 Apr 2026
    Release notes

    What's Changed

    Full Changelog: v1.1.0...v1.2.0

    Open source →
    Release notes

    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> and From<&SparseHistogram> conversions for constructing a CumulativeROHistogram
    • Quantile range query methods on CumulativeROHistogram for analytics use cases
    Open source →
  7. 1.1.0 06 Apr 2026
    Release notes

    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

    Full Changelog: v1.0.0...v1.1.0

    Open source →
    Release notes

    Added

    • SampleQuantiles trait with quantiles() and quantile() methods, implemented for both Histogram and SparseHistogram
    • QuantilesResult struct returning a BTreeMap<Quantile, Bucket> with total_count, min, and max bucket metadata
    • Quantile newtype wrapping validated f64 in 0.0..=1.0, implementing Ord/Eq for use as a BTreeMap key
    • Error::InvalidQuantile variant for quantile validation errors

    Deprecated

    • Histogram::percentiles() and Histogram::percentile() — use SampleQuantiles trait methods instead
    • SparseHistogram::percentiles() and SparseHistogram::percentile() — use SampleQuantiles trait methods instead
    • Error::InvalidPercentile — use Error::InvalidQuantile instead
    Open source →
  8. 1.0.0 20 Mar 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: https://github.com/iopsystems/histogram/commits/v1.0.0

    Open source →
    Release notes

    First release with changelog.

    Open source →
  9. 0.11.5 20 Mar 2026

    Nothing published for this version

  10. 0.11.4 13 Jan 2026

    Nothing published for this version

  11. 0.11.3 04 Mar 2025

    Nothing published for this version

  12. 0.11.2 17 Jan 2025

    Nothing published for this version

  13. 0.11.1 31 Oct 2024

    Nothing published for this version

  14. 0.11.0 12 Jun 2024

    Nothing published for this version

  15. 0.10.2 03 Jun 2024

    Nothing published for this version

  16. 0.10.1 03 May 2024

    Nothing published for this version

  17. 0.10.0 01 Apr 2024

    Nothing published for this version

  18. 0.9.1 07 Feb 2024

    Nothing published for this version

  19. 0.9.0 16 Jan 2024

    Nothing published for this version

  20. 0.8.4 12 Jan 2024

    Nothing published for this version

  21. 0.8.3 25 Oct 2023

    Nothing published for this version

  22. 0.8.2 24 Oct 2023

    Nothing published for this version

  23. 0.8.1 23 Oct 2023

    Nothing published for this version

  24. 0.8.0 12 Oct 2023

    Nothing published for this version

  25. 0.7.4 07 Aug 2023

    Nothing published for this version

  26. 0.7.3 01 Jun 2023

    Nothing published for this version

  27. 0.7.2 24 Mar 2023

    Nothing published for this version

  28. 0.7.1 13 Feb 2023

    Nothing published for this version

  29. 0.7.0 15 Jan 2023

    Nothing published for this version

  30. 0.6.9 02 May 2018

    Nothing published for this version

  31. 0.6.8 17 Nov 2017

    Nothing published for this version

  32. 0.6.7 02 Sep 2017

    Nothing published for this version

  33. 0.6.6 18 May 2017

    Nothing published for this version

  34. 0.6.5 16 May 2017

    Nothing published for this version

  35. 0.6.4 06 Feb 2017

    Nothing published for this version

  36. 0.6.3 13 Sep 2016

    Nothing published for this version

  37. 0.6.2 09 Sep 2016

    Nothing published for this version

  38. 0.6.1 13 Jun 2016

    Nothing published for this version

  39. 0.6.0 09 Jun 2016

    Nothing published for this version

  40. 0.5.1 08 Jun 2016

    Nothing published for this version

  41. 0.5.0 07 Jun 2016

    Nothing published for this version

  42. 0.4.0 28 May 2016

    Nothing published for this version

  43. 0.3.6 15 Mar 2016

    Nothing published for this version

  44. 0.3.5 17 Jan 2016

    Nothing published for this version

  45. 0.3.4 24 Dec 2015

    Nothing published for this version

  46. 0.3.3 20 Dec 2015

    Nothing published for this version

  47. 0.3.2 02 Dec 2015

    Nothing published for this version

  48. 0.3.1 15 Nov 2015

    Nothing published for this version

  49. 0.3.0 08 Nov 2015

    Nothing published for this version

  50. 0.2.2 28 Oct 2015

    Nothing published for this version

  51. 0.2.1 28 Sep 2015

    Nothing published for this version

  52. 0.2.0 07 Sep 2015

    Nothing published for this version

  53. 0.1.6 04 Sep 2015

    Nothing published for this version

  54. 0.1.5 29 Aug 2015

    Nothing published for this version

  55. 0.1.4 06 Aug 2015

    Nothing published for this version

  56. 0.1.3 28 Jul 2015

    Nothing published for this version

  57. 0.1.2 18 Jul 2015

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive