Skip to main content

Overview

High Dynamic Range Histogram python implementation

https://github.com/HdrHistogram/HdrHistogram_py/actions/workflows/tox.yml/badge.svg?branch=master

This repository contains a port to python of most of the original Java HDR Histogram library:

  • Basic histogram value recording
    • record value

    • record value with correction for coordinated omission

  • Supports 16-bit, 32-bit and 64-bit counters

  • All histogram basic query APIs
    • get value at percentile

    • get total count

    • get min value, max value, mean, standard deviation

  • All iterators are implemented: all values, recorded, percentile, linear, logarithmic

  • Text file histogram log writer and log reader (.hlog file)

  • Dump histogram in plot-friendly percentile table (.hgrm format)

  • Encoding and decoding Hdr Histogram “histoblobs” (HdrHistogram V2 format only, V1 and V0 not supported)

  • supports Python 3.10, 3.11, 3.12, 3.13 and 3.14 (0.9.2 is the latest release supporting python 2.7)

Histogram V2 format encoding inter-operability with Java and C versions verified through unit test code.

Python API

Users of this library can generally play one of 2 roles (sometimes both):

  • record values into 1 or more histograms (histogram provisioning)

  • analyze and display histogram content and characteristics (histogram query)

In distributed cases, histogram provisioning can be be done remotely (and possibly in multiple locations) then aggregated in a central place for analysis.

A histogram instance can be created using the HdrHistogram class and specifying the minimum and maximum trackable value and the number of precision digits desired. For example to create a histogram that can count values in the [1..3600000] range and 1% precision (this could be for example to track latencies in the range [1 msec..1 hour]):

histogram = HdrHistogram(1, 60 * 60 * 1000, 2)

By default counters are 64-bit while 16 or 32-bit counters can be specified (word_size option set to 2 or 4 bytes). Note that counter overflow is not tested in this version so be careful when using smaller counter sizes.

Once created it is easy to add values to a histogram:

histogram.record_value(latency)

If the code that generates the values is subject to Coordinated Omission, use the corrected version of that method (example when the expected interval is 10 msec):

histogram.record_corrected_value(latency, 10)

At any time, the histogram can be queried to return any property, such as getting the total number of values recorded or the value at a given percentile:

count = histogram.get_total_count()
value = histogram.get_value_at_percentile(99.9)

Recorded values can be iterated over using the recorded iterator:

for item in histogram.get_recorded_iterator():
    print('value=%f count=%d percentile=%f' %
            item.value_iterated_to,
            item.count_added_in_this_iter_step,
            item.percentile)

A histoblob (base64 encoded/compressed histogram) is a convenient way to serialize and store a histogram instance without losing precision (lossless). The resulting base 64 string can then be stored inside a standard container such as a JSON document, XML, CSV…

The histoblob for a histogram instance can be generated by calling the compress method:

histoblob = histogram.encode()

A histoblob can be decoded into a histogram instance with the decode method:

decoded_histogram = HdrHistogram.decode(histoblob)
count = decoded_histogram.get_total_count()

In the case of aggregation, the decode_and_add method can be used:

aggregation_histogram.decode_and_add(histoblob)

If you want to print the histogram in a plotter-friendly percentile tabular format (.hgrm):

histogram.output_percentile_distribution(file, scaling_ratio)

For additional help on how to use the API:

  • browse through the python code and check the API documentation in the comment section for each method (where available)

  • the best documentation is by looking at the test code under the test directory

The test code (https://github.com/HdrHistogram/HdrHistogram_py/blob/master/test/test_hdrhistogram.py) pretty much covers every API.

Installation

Pre-requisites:

Make sure you have Python 3.10 or later, and pip installed

Binary installation

This is the preferred method for most installations where you only need to use this library. Use a python virtual environment if needed.

pip install hdrhistogram

Prebuilt binary wheels are published to PyPI for Linux, macOS and Windows across the supported CPython versions (3.10 to 3.14), so pip will normally install without needing a local build. If no matching wheel is available for your platform, pip falls back to building from the source distribution, which requires a C compiler (for the small C extension that handles the low level encoding/decoding). You can also build from the git source using the setuptools procedure below.

Source code installation Package build and Unit Testing

This is the method to use for any development work with this library or if you want to read or run the test code.

Install the unit test automation harness tox and hdrhistogram from github:

pip install tox
# cd to the proper location to clone the repository
git clone https://github.com/HdrHistogram/HdrHistogram_py.git
cd HdrHistogram_py

Running tox will execute the following environments (see tox.ini):

  • py310 to py314: the python unit test suite with coverage, under each supported Python version installed on the host

  • lint: pylint static analysis

Just run tox without any argument (the first run will take more time as tox will setup the execution environment and download the necessary packages):

$ tox
...
py313: commands[0]> pytest --cov=hdrh --cov-report=term-missing -vv test
...
====================== 39 passed in 5.11s ======================
lint: commands[0]> pylint --rcfile pylint.rc hdrh test

--------------------------------------------------------------------
Your code has been rated at 10.00/10

  py310: OK
  py311: OK
  py312: OK
  py313: OK
  py314: OK
  lint: OK
  congratulations :)

Display percentile table (.hgrm) from a histoblob (dump_hdrh)

To print the .hgrm percentile table of any histoblob, use the dump_hdrh tool (installed along with the package).

$ dump_hdrh

Usage: dump_hdrh [<string encoded hdr histogram>]*

You can pass one or more histoblobs to the tool:

$ dump_hdrh 'HISTFAAAACl4nJNpmSzMwMDAxQABzFCaEUzOmNZg/wEi0NzIyPSYlWmpGBMAh4gG4A=='

Dumping histogram: HISTFAAAACl4nJNpmSzMwMDAxQABzFCaEUzOmNZg/wEi0NzIyPSYlWmpGBMAh4gG4A==

      Value     Percentile TotalCount 1/(1-Percentile)

139647.000 0.000000000000          1           1.00
139647.000 0.100000000000          1           1.11
139647.000 0.190000000000          1           1.23
139647.000 0.271000000000          1           1.37
187135.000 0.343900000000          2           1.52
187135.000 0.409510000000          2           1.69
187135.000 0.468559000000          2           1.88
187135.000 0.521703100000          2           2.09
187135.000 0.569532790000          2           2.32
187135.000 0.612579511000          2           2.58
187135.000 0.651321559900          2           2.87
477695.000 0.686189403910          3           3.19
477695.000 1.000000000000          3
#[Mean    =   268074.667, StdDeviation   =   149397.390]
#[Max     =   477695.000, TotalCount     =        3.000]
#[Buckets =           14, SubBuckets     =         2048]

Aggregation of Distributed Histograms

Aggregation of multiple histograms into 1 is useful in cases where tools that generate these individual histograms have to run in a distributed way in order to scale sufficiently. As an example, the wrk2 tool (https://github.com/giltene/wrk2.git) is a great tool for measuring the latency of HTTP requests with a large number of connections. Although this tool can support thousands of connections per process, some setups require massive scale in the order of hundreds of thousands of connections which require running a large number of instances of wrk processes, possibly on a large number of servers. Given that each instance of wrk can generate a separate histogram, assessing the scale of the entire system requires aggregating all these histograms into 1 in a way that does not impact the accuracy of the results. So there are 2 problems to solve:

  • find a way to properly aggregate multiple histograms without losing any detail

  • find a way to transport all these histograms into a central place

This library provides a solution for the aggregation part of the problem:

  • reuse the HDR histogram compression format version 1 to encode and compress a complete histogram that can be sent over the wire to the aggregator

  • provide python APIs to easily and efficiently:

    • compress an histogram instance into a transportable string

    • decompress a compressed histogram and add it to an existing histogram

Refer to the unit test code (test/test_hdrhistogram.py) to see how these APIs can be used.

Histogram wire encoding and size

Histograms are encoded using the HdrHistogram V2 format which is based on an adapted ZigZag LEB128 encoding where:

  • consecutive zero counters are encoded as a negative number representing the count of consecutive zeros

  • non zero counter values are encoded as a positive number

An empty histogram (all zeros counters) is encoded in exactly 48 bytes regardless of the counter size. A typical histogram (2 digits precision 1 usec to 1 day range) can be encoded in less than the typical MTU size of 1500 bytes.

This format is compatible with the HdrHistogram Java and C implementations.

Performance

Histogram value recording has the same cost characteristics than the original Java version since it is a direct port (fixed cost for CPU and reduced memory usage). Encoding and decoding in the python version is very fast and close to native performance thanks to the use of:

  • integrated C extensions (native C code called from python) that have been developed to handle the low-level byte encoding/decoding/addition work at native speed

  • native compression library (zlib and base64)

On a macbook pro (2019 Intel Core i7 @ 2.6GHz) and Linux server (Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz):

Operation Time in usec

Macbook

Linux

record a single value

1

1

encode typical histogram

75

68

decode and add

100

110

The typical histogram is defined as one that has 30% of 64-bit buckets filled with sequential values starting at 20% of the array, for a range of 1 usec to 24 hours and 2 digits precision. This represents a total of 3968 buckets, of which the first 793 are zeros, the next 1190 buckets have a sequential/unique value and all remaining buckets are zeros, for an encoded length of 3116 bytes. Most real-world histograms have a much sparser pattern that will yield a lower encoding and decoding time. Decode and add will decode the encoded histogram and add its content to an existing histogram.

To measure the performance of encoding and decoding and get the profiling, you must clone the github repository with git, install it (in a virtual environment if needed) and call pytest with the –runperf option. The 2 profiling functions will provide the profiling information for encoding and decoding the typical histogram 1000 times (so the time values shown are seconds for 1000 decodes/decodes).

Example of run on Linux:

# pytest -s -k test_cod_perf --runperf
=============================================================================== test session starts ================================================================================
platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0
rootdir: /root/HdrHistogram_py, configfile: tox.ini
collected 39 items / 38 deselected / 1 selected

test_hdrhistogram.py 0:00:00.061559
         35305 function calls in 0.068 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      1    0.000    0.000    0.068    0.068 <string>:1(<module>)
   2000    0.002    0.000    0.002    0.000 __init__.py:483(string_at)
   1000    0.000    0.000    0.004    0.000 base64.py:51(b64encode)
      1    0.000    0.000    0.000    0.000 codec.py:119(__init__)
      1    0.000    0.000    0.000    0.000 codec.py:154(_init_counts)
      1    0.000    0.000    0.000    0.000 codec.py:172(get_counts)
   1000    0.004    0.000    0.050    0.000 codec.py:214(compress)
      1    0.000    0.000    0.000    0.000 codec.py:256(__init__)
      1    0.000    0.000    0.000    0.000 codec.py:285(get_counts)
   1000    0.002    0.000    0.061    0.000 codec.py:291(encode)
      1    0.000    0.000    0.000    0.000 codec.py:65(get_encoding_cookie)
      1    0.000    0.000    0.000    0.000 codec.py:69(get_compression_cookie)
   2190    0.001    0.000    0.001    0.000 histogram.py:142(_clz)
   2190    0.002    0.000    0.003    0.000 histogram.py:153(_get_bucket_index)
   2190    0.001    0.000    0.001    0.000 histogram.py:159(_get_sub_bucket_index)
   1190    0.000    0.000    0.000    0.000 histogram.py:162(_counts_index)
   1190    0.001    0.000    0.003    0.000 histogram.py:172(_counts_index_for)
   1190    0.001    0.000    0.005    0.000 histogram.py:177(record_value)
   1190    0.000    0.000    0.000    0.000 histogram.py:232(get_value_from_sub_bucket)
   1190    0.001    0.000    0.001    0.000 histogram.py:235(get_value_from_index)
      1    0.000    0.000    0.000    0.000 histogram.py:34(get_bucket_count)
   1000    0.000    0.000    0.061    0.000 histogram.py:419(encode)
   1000    0.001    0.000    0.003    0.000 histogram.py:462(get_counts_array_index)
      1    0.000    0.000    0.000    0.000 histogram.py:65(__init__)
      1    0.001    0.001    0.006    0.006 test_hdrhistogram.py:408(fill_hist_counts)
      1    0.000    0.000    0.068    0.068 test_hdrhistogram.py:526(check_cod_perf)
   5000    0.000    0.000    0.000    0.000 {built-in method _ctypes.addressof}
   1000    0.004    0.000    0.004    0.000 {built-in method binascii.b2a_base64}
   2190    0.000    0.000    0.000    0.000 {built-in method builtins.bin}
      1    0.000    0.000    0.068    0.068 {built-in method builtins.exec}
   3190    0.000    0.000    0.000    0.000 {built-in method builtins.len}
   1190    0.000    0.000    0.000    0.000 {built-in method builtins.max}
   1190    0.000    0.000    0.000    0.000 {built-in method builtins.min}
      1    0.000    0.000    0.000    0.000 {built-in method builtins.print}
      1    0.000    0.000    0.000    0.000 {built-in method math.ceil}
      1    0.000    0.000    0.000    0.000 {built-in method math.floor}
      4    0.000    0.000    0.000    0.000 {built-in method math.log}
      2    0.000    0.000    0.000    0.000 {built-in method math.pow}
      2    0.000    0.000    0.000    0.000 {built-in method now}
   1000    0.006    0.000    0.006    0.000 {built-in method pyhdrh.encode}
   1000    0.039    0.000    0.039    0.000 {built-in method zlib.compress}
      1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

And for decoding:

# pytest -s -k test_dec_perf --runperf
=============================================================================== test session starts ================================================================================
platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0
rootdir: /root/HdrHistogram_py, configfile: tox.ini
collected 39 items / 38 deselected / 1 selected

test_hdrhistogram.py 0:00:00.106705
         118327 function calls in 0.113 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      1    0.000    0.000    0.113    0.113 <string>:1(<module>)
      2    0.000    0.000    0.000    0.000 __init__.py:483(string_at)
   1000    0.001    0.000    0.001    0.000 base64.py:34(_bytes_from_decode_data)
      1    0.000    0.000    0.000    0.000 base64.py:51(b64encode)
   1000    0.001    0.000    0.010    0.000 base64.py:65(b64decode)
   1001    0.001    0.000    0.019    0.000 codec.py:119(__init__)
   1001    0.004    0.000    0.004    0.000 codec.py:154(_init_counts)
   1000    0.002    0.000    0.012    0.000 codec.py:157(init_counts)
   3001    0.000    0.000    0.000    0.000 codec.py:172(get_counts)
   1000    0.002    0.000    0.018    0.000 codec.py:175(_decompress)
      1    0.000    0.000    0.000    0.000 codec.py:214(compress)
   1001    0.002    0.000    0.002    0.000 codec.py:256(__init__)
   3001    0.001    0.000    0.001    0.000 codec.py:285(get_counts)
      1    0.000    0.000    0.000    0.000 codec.py:291(encode)
   1000    0.003    0.000    0.032    0.000 codec.py:313(decode)
   1000    0.001    0.000    0.011    0.000 codec.py:359(add)
   3000    0.001    0.000    0.001    0.000 codec.py:56(get_cookie_base)
   1000    0.000    0.000    0.001    0.000 codec.py:59(get_word_size_in_bytes_from_cookie)
      1    0.000    0.000    0.000    0.000 codec.py:65(get_encoding_cookie)
   1001    0.000    0.000    0.000    0.000 codec.py:69(get_compression_cookie)
      1    0.000    0.000    0.000    0.000 expression.py:81(lex)
   7191    0.003    0.000    0.005    0.000 histogram.py:142(_clz)
   7191    0.006    0.000    0.011    0.000 histogram.py:153(_get_bucket_index)
   7191    0.002    0.000    0.002    0.000 histogram.py:159(_get_sub_bucket_index)
   1190    0.000    0.000    0.000    0.000 histogram.py:162(_counts_index)
   1190    0.001    0.000    0.003    0.000 histogram.py:172(_counts_index_for)
   1190    0.001    0.000    0.005    0.000 histogram.py:177(record_value)
   10190   0.002    0.000    0.002    0.000 histogram.py:232(get_value_from_sub_bucket)
   4190    0.002    0.000    0.003    0.000 histogram.py:235(get_value_from_index)
   2000    0.002    0.000    0.005    0.000 histogram.py:244(get_lowest_equivalent_value)
   4000    0.004    0.000    0.013    0.000 histogram.py:252(get_highest_equivalent_value)
   1000    0.000    0.000    0.000    0.000 histogram.py:330(get_total_count)
   1001    0.007    0.000    0.007    0.000 histogram.py:34(get_bucket_count)
   2000    0.001    0.000    0.007    0.000 histogram.py:346(get_max_value)
   2000    0.001    0.000    0.007    0.000 histogram.py:351(get_min_value)
      1    0.000    0.000    0.000    0.000 histogram.py:419(encode)
   1000    0.001    0.000    0.006    0.000 histogram.py:445(set_internal_tacking_values)
      1    0.000    0.000    0.000    0.000 histogram.py:462(get_counts_array_index)
   1000    0.005    0.000    0.035    0.000 histogram.py:513(add)
   1000    0.001    0.000    0.106    0.000 histogram.py:544(decode_and_add)
   1000    0.002    0.000    0.071    0.000 histogram.py:563(decode)
   1001    0.008    0.000    0.037    0.000 histogram.py:65(__init__)
      1    0.001    0.001    0.006    0.006 test_hdrhistogram.py:408(fill_hist_counts)
      1    0.000    0.000    0.113    0.113 test_hdrhistogram.py:539(check_dec_perf)
   3005    0.000    0.000    0.000    0.000 {built-in method _ctypes.addressof}
   1000    0.008    0.000    0.008    0.000 {built-in method binascii.a2b_base64}
      1    0.000    0.000    0.000    0.000 {built-in method binascii.b2a_base64}
   7191    0.001    0.000    0.001    0.000 {built-in method builtins.bin}
      1    0.000    0.000    0.113    0.113 {built-in method builtins.exec}
   2000    0.000    0.000    0.000    0.000 {built-in method builtins.isinstance}
   9192    0.001    0.000    0.001    0.000 {built-in method builtins.len}
   3190    0.001    0.000    0.001    0.000 {built-in method builtins.max}
   3190    0.001    0.000    0.001    0.000 {built-in method builtins.min}
      1    0.000    0.000    0.000    0.000 {built-in method builtins.print}
   1001    0.000    0.000    0.000    0.000 {built-in method math.ceil}
   1001    0.000    0.000    0.000    0.000 {built-in method math.floor}
   4004    0.001    0.000    0.001    0.000 {built-in method math.log}
   2002    0.000    0.000    0.000    0.000 {built-in method math.pow}
      2    0.000    0.000    0.000    0.000 {built-in method now}
   1000    0.008    0.000    0.008    0.000 {built-in method pyhdrh.add_array}
   1000    0.007    0.000    0.007    0.000 {built-in method pyhdrh.decode}
      1    0.000    0.000    0.000    0.000 {built-in method pyhdrh.encode}
      1    0.000    0.000    0.000    0.000 {built-in method zlib.compress}
   1000    0.014    0.000    0.014    0.000 {built-in method zlib.decompress}
      1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
   2000    0.001    0.000    0.001    0.000 {method 'from_buffer_copy' of '_ctypes.PyCStructType' objects}

Limitations, Caveats and Known Issues

The latest features and bug fixes of the original HDR histogram library may not be available in this python port. Examples of notable features/APIs not implemented:

  • concurrency support (AtomicHistogram, ConcurrentHistogram…)

  • DoubleHistogram

  • histogram auto-resize

  • recorder function

This implementation has byte endianess encoding issues when used with PyPy due to a limitation of the PyPy code (see https://github.com/HdrHistogram/HdrHistogram_py/issues/13).

The current implementation has issues running on Windows 32-bit systems (library crashing during decode).

Dependencies

The only dependency (outside of using pytest and tox for the unit testing) is the small pbr python package which takes care of the versioning (among other things).

Publishing a New Release to PyPI

To create a new release, apply a new release tag then create a new Release using GitHub (this requires the appropriate permissions). Publishing a Release triggers the Upload Python Package GitHub Actions workflow (.github/workflows/python-publish.yml), which builds the source distribution and binary wheels for Linux, macOS and Windows (CPython 3.10 to 3.14) and uploads them to PyPI using Trusted Publishing (no API token required).

Licensing

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Contribution

External contribution, forks and GitHub pull requests are welcome. For any discussion, head to the gitter HdrHistogram space at https://gitter.im/HdrHistogram/HdrHistogram

Acknowledgements

The python code was directly ported from the original HDR Histogram Java and C libraries:

Metadata

Release files for hdrhistogram 0.10.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hdrhistogram 0.10.8
File Size Uploaded
hdrhistogram-0.10.8.tar.gz 63.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for hdrhistogram 0.10.8
File
hdrhistogram-0.10.8-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
hdrhistogram-0.10.8-cp314-cp314-win32.whl CPython 3.14 CPython 3.14 Windows x86-32 Details
hdrhistogram-0.10.8-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
hdrhistogram-0.10.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details
hdrhistogram-0.10.8-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
hdrhistogram-0.10.8-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
hdrhistogram-0.10.8-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details
hdrhistogram-0.10.8-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
hdrhistogram-0.10.8-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
hdrhistogram-0.10.8-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
hdrhistogram-0.10.8-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
hdrhistogram-0.10.8-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
hdrhistogram-0.10.8-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
hdrhistogram-0.10.8-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
hdrhistogram-0.10.8-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
hdrhistogram-0.10.8-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
hdrhistogram-0.10.8-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
hdrhistogram-0.10.8-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
hdrhistogram-0.10.8-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
hdrhistogram-0.10.8-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
hdrhistogram-0.10.8-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
hdrhistogram-0.10.8-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
hdrhistogram-0.10.8-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
hdrhistogram-0.10.8-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
hdrhistogram-0.10.8-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 1.1 MB

Release files / hdrhistogram-0.10.8.tar.gz

Download URL hdrhistogram-0.10.8.tar.gz
Size 63.7 kB
Tags Source
SHA-256 checksum
How to use checksums
88986eea184d1330c53fca98adf58799339a23ac27f488887b0423c7ce569c34
BLAKE2b-256 checksum
How to use checksums
c92cd4aa1fe047867f9412068ff3070976d3a4749bcb01774fb00c57507e1804
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp314-cp314-win_amd64.whl

Download URL hdrhistogram-0.10.8-cp314-cp314-win_amd64.whl
Size 40.5 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
b2e29c7d870027a15b5e9aa0a845e3a6cb3668d00fa3b19a9a6e8f94aab5a582
BLAKE2b-256 checksum
How to use checksums
7dee584f6aa4461c1d17a02dff373fa7d2bd89321107c6b171e5c7c15c006038
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp314-cp314-win32.whl

Download URL hdrhistogram-0.10.8-cp314-cp314-win32.whl
Size 40.0 kB
Tags CPython 3.14 Windows x86-32
SHA-256 checksum
How to use checksums
82de3b2f0e4822386ec03380648a93cfd5e859094b9aee77171d370ee9930fda
BLAKE2b-256 checksum
How to use checksums
89b3161740e882b0803cfa5ec8f6f6357b8cf277d527c203b72b2af247199bf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL hdrhistogram-0.10.8-cp314-cp314-musllinux_1_2_x86_64.whl
Size 47.7 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
346bbc534dec7ec01fa1bf9c620602ea70e03c669a1411c65f54a8be692d4b80
BLAKE2b-256 checksum
How to use checksums
95aeba88dfbb18095fe578c39d346cded93a8b4efa6240e19ed6343224ff66ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL hdrhistogram-0.10.8-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 47.9 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
1e1f1d435c572fbe41055929619b3f2f47bee5634024e351892743ddbd3d5d8c
BLAKE2b-256 checksum
How to use checksums
a51e8e8c6f2c7d6337924e41a85b86a4209ee07d7826cf9d4ea810ea7a7ba671
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp314-cp314-macosx_11_0_arm64.whl

Download URL hdrhistogram-0.10.8-cp314-cp314-macosx_11_0_arm64.whl
Size 37.1 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2231b29ae8ef07fd71f48946a67c76d49985126f7ee023bb6de628fb6e526ec0
BLAKE2b-256 checksum
How to use checksums
c4bf5465456853e0912932999aafc55aac49983558502170e761672807de7914
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp313-cp313-win_amd64.whl

Download URL hdrhistogram-0.10.8-cp313-cp313-win_amd64.whl
Size 40.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
6c1a1fd25bed4de5f698064ee472cd0acc1f0e06615837d8041fc6a0cbaa551e
BLAKE2b-256 checksum
How to use checksums
5c6a605d47ca67d1cd0bebdfb6014dc84112b75d16fd5246f27f49d6470b956a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp313-cp313-win32.whl

Download URL hdrhistogram-0.10.8-cp313-cp313-win32.whl
Size 39.8 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
107c36bb0ab43adedf93585ec438ce513598f159c29cf203f49f66f33e4072b6
BLAKE2b-256 checksum
How to use checksums
7764b0f70721b9a1fe3d42da936cb401a4825fb37cb435312158eb771afde6ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL hdrhistogram-0.10.8-cp313-cp313-musllinux_1_2_x86_64.whl
Size 47.7 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
51df89b8b27950bdd0f83833a44718cdcea178d2904b22eed4cf485df63c1e51
BLAKE2b-256 checksum
How to use checksums
ff65db6704c48a4378b4e71421c3abb3da55534c348b228055f4e9a3a8925a91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL hdrhistogram-0.10.8-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 47.9 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
687abd745bb23a7cc94b4936247742b520029e22dc41376305fe16a158723e57
BLAKE2b-256 checksum
How to use checksums
2dbb59f198685e77ef630048d4346680660fa8baa88da97a938049b3976aeefd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp313-cp313-macosx_11_0_arm64.whl

Download URL hdrhistogram-0.10.8-cp313-cp313-macosx_11_0_arm64.whl
Size 37.1 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5c92d55b1d9eac51e10809a7d9023036a741f928eed5516cc90e428633c4909d
BLAKE2b-256 checksum
How to use checksums
1e4b8c62dc7050b5ff1bd3986b9fa56db2103d1c640413269af8ae7e40c7b0f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp312-cp312-win_amd64.whl

Download URL hdrhistogram-0.10.8-cp312-cp312-win_amd64.whl
Size 40.3 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
dbf03e45b68039015cfd0f62a3e7c18de614fa07d5373520ce461a384508d2c0
BLAKE2b-256 checksum
How to use checksums
94c627462c3168e8e79e1dc8be8ce87f8f974c5332443f6f7dd9634d75216609
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp312-cp312-win32.whl

Download URL hdrhistogram-0.10.8-cp312-cp312-win32.whl
Size 39.8 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
9858bbc42e218f60888b8cb50bf304ab26c5a684c3f8fe5100c6ff8573ab52d4
BLAKE2b-256 checksum
How to use checksums
4992ec370bfebc100e0d77a0c3418b16b19f07351eca2acef44a59efdb7016ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL hdrhistogram-0.10.8-cp312-cp312-musllinux_1_2_x86_64.whl
Size 47.6 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2320d0347baa82ef177d9cfb0edc8b914b710339ede62b8630e1e37ce65dbdd5
BLAKE2b-256 checksum
How to use checksums
0b8632293a062e96ce404ea99c3ee47c9351dbbdbf6e7af8ea8baf344b63a2aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL hdrhistogram-0.10.8-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 47.8 kB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
f9d6433aa4844e937e49394e4a0dc4ffbb564a9847a6d10b4a77a5d41bc9eb6b
BLAKE2b-256 checksum
How to use checksums
929180a831b0435999bfda7b3812ba3ec3714504af03988d05a4d9201a40b173
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp312-cp312-macosx_11_0_arm64.whl

Download URL hdrhistogram-0.10.8-cp312-cp312-macosx_11_0_arm64.whl
Size 37.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3d5fa523be49773ca0a810db0f87cc449cbed83a54d3b1d1f826b01ed11cb5de
BLAKE2b-256 checksum
How to use checksums
6b31c296b63d5a4a557240a20a41f53e97690a070aa5c8de97f76ab8e9e3a85d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp311-cp311-win_amd64.whl

Download URL hdrhistogram-0.10.8-cp311-cp311-win_amd64.whl
Size 40.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
edb49c0845a4a8e89d772101f42a68ce5bee39c8163737109e7a5a3cf1b5c228
BLAKE2b-256 checksum
How to use checksums
f23f508fad50bcff6000bb7633298549c33374e2bf3197cb5fdcc2df5d1bfc8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp311-cp311-win32.whl

Download URL hdrhistogram-0.10.8-cp311-cp311-win32.whl
Size 39.8 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
2f87b2a035138c3ce9cdc3098c6c24d044b6680eb36b37609be1d50a0894861b
BLAKE2b-256 checksum
How to use checksums
915f22a8ca9388dbdbad2594bcb67cf9a17fb50d815e23ef993904751a85759b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL hdrhistogram-0.10.8-cp311-cp311-musllinux_1_2_x86_64.whl
Size 47.5 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ecd6e23bdf1431b5dc6c1a232d32225be15dda575cf20622cda768886e01f6e9
BLAKE2b-256 checksum
How to use checksums
4b3ec1c27dec7c11b4ab09ff16b894d73d39745e1645de21073fcf16f02acce1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL hdrhistogram-0.10.8-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 47.7 kB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
2f7d154b3ebd0aff7b8dde75718872c7d3c4144f9b9eeba5b4841c6f89c3989b
BLAKE2b-256 checksum
How to use checksums
e7dbf8c716bcd5e0ceac2d23cbd171ad84ec0ce7c0b5fe0621c1abc47ce00e1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp311-cp311-macosx_11_0_arm64.whl

Download URL hdrhistogram-0.10.8-cp311-cp311-macosx_11_0_arm64.whl
Size 37.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7491803bd4dbcff590960285df791ff9fa6dbf2702a2330a2cca2829030353e4
BLAKE2b-256 checksum
How to use checksums
315bfb4730cb52e0b1f558dd888c804a153b0b3cb879c3487219ba5a80bffe35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp310-cp310-win_amd64.whl

Download URL hdrhistogram-0.10.8-cp310-cp310-win_amd64.whl
Size 40.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
dd6830b463691153cccfdf4812eab095036cc613e763731558f9eb100df049bd
BLAKE2b-256 checksum
How to use checksums
6e55b7c16e640d5799b6fa9a2675bdf005c284918cd71e03a2611b9f0f9dfe49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp310-cp310-win32.whl

Download URL hdrhistogram-0.10.8-cp310-cp310-win32.whl
Size 39.6 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
2f706e46667af8d2ba31e35af50bcc7fa2573972339d80ee3f1ed2356384e80c
BLAKE2b-256 checksum
How to use checksums
5e5ccb774d800bf0d6e166212c7095ef6b57640d1cf749ecedcedde7e58dc260
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL hdrhistogram-0.10.8-cp310-cp310-musllinux_1_2_x86_64.whl
Size 47.2 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
34de05efae41c3d94814b1bb5b89d4d56d26708c4820ca55a2dfad7272a6d794
BLAKE2b-256 checksum
How to use checksums
f3ae90dc431c5dc3af06cb494bb2a15d5a3be303354017f9b825dcbf2ecffefc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL hdrhistogram-0.10.8-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 47.5 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
94cfce62e73a0115b939272c8e004e149c29220f4aabaccbe9103003f0135549
BLAKE2b-256 checksum
How to use checksums
678a9623af3c53e75235603869597f8371bd46c00982e93163932bc4c9821fbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / hdrhistogram-0.10.8-cp310-cp310-macosx_11_0_arm64.whl

Download URL hdrhistogram-0.10.8-cp310-cp310-macosx_11_0_arm64.whl
Size 36.9 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7744076f250d5654f8b62f99b322d385291cd6e1bf953ae66228a9af51d0fcc4
BLAKE2b-256 checksum
How to use checksums
0adb0d52bdbd8556a05487c7daf73f52d5cbc5dcc3ad89eaf50910dca171f0c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.10.8 This release

26 release files

0.10.2

1 release file

0.10.1

1 release file

0.9.2

2 release files

0.9.1

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.1

1 release file

0.6.1

1 release file

0.5.2

1 release file

0.4.1

1 release file

0.3.1

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page