Skip to main content

Rust implementations of Elastic Hashing and Funnel Hashing with Python bindings

Project description

opthash

Crates.io PyPI CI Release Python License

Rust implementations of Elastic Hashing and Funnel Hashing from Optimal Bounds for Open Addressing Without Reordering (Farach-Colton, Krapivin, Kuszmaul, 2025).

Both are open-addressing hash maps that achieve optimal expected probe complexity without reordering elements after insertion.

Data Structures

Both maps share a common core: RawTable-backed multi-level layouts, 7-bit fingerprint control bytes, SIMD control-byte scans for occupancy + lookup, tombstone accounting, and per-level Lemire fastmod magics for the hash → slot mapping. The default BuildHasher is foldhash.

  • ElasticHashMap<K, V> — Flat RawTable per level with geometrically halving capacities; insertion uses per-level probe budgets + coprime group steps.
  • FunnelHashMap<K, V> — Bucketed levels plus a split special array: primary (group-probed) and fallback (two-choice buckets).

Both support insert, get, get_mut, contains_key, remove, and clear. Maps start with zero allocation (new()) and grow dynamically on demand. Advanced tuning is available through ElasticOptions, FunnelOptions, and with_options(...).

Usage

Rust

cargo add opthash
use opthash::{ElasticHashMap, ElasticOptions, FunnelHashMap, FunnelOptions};

let mut map = ElasticHashMap::new();
map.insert("key", 42);
assert_eq!(map.get("key"), Some(&42));

let mut map = ElasticHashMap::with_options(ElasticOptions {
    capacity: 1024,
    reserve_fraction: 0.10,
    probe_scale: 12.0,
});
map.insert("key", 42);
assert_eq!(map.get("key"), Some(&42));

let mut map = FunnelHashMap::with_options(FunnelOptions {
    capacity: 1024,
    reserve_fraction: 0.10,
    primary_probe_limit: Some(8),
});
map.insert("key", 42);
assert_eq!(map.get("key"), Some(&42));

Python

pip install opthash
from opthash import ElasticHashMap, FunnelHashMap

m = ElasticHashMap()
m["key"] = 42
assert m["key"] == 42
assert "key" in m and len(m) == 1

m = ElasticHashMap.with_options(
    capacity=1024, reserve_fraction=0.10, probe_scale=12.0
)

m = FunnelHashMap.with_options(
    capacity=1024, reserve_fraction=0.10, primary_probe_limit=8
)

Layout Sketch

RawTable (shared by both maps)
==============================

  fp = fingerprint (7-bit control byte)
  kv = key-value entry, __ = empty, xx = tombstone

  Single allocation, slots first, controls at the end:

  data_ptr ► [kv][kv][  ][kv][  ][kv]... [pad] [fp][fp][__][xx][__][fp]...
             └──── slots (T-aligned) ────┘     └─ controls (16-aligned) ──┘
                                               ▲ ctrl_offset

  No per-group metadata. Occupancy is derived from SIMD scans of the control bytes
  (eq_mask_16 for fingerprints, free_mask_16 for free slots).


ElasticHashMap
==============

  levels: Vec<Level>

    Level 0    RawTable  (largest, ~half of total capacity)
    Level 1    RawTable  (geometrically halved)
    Level 2    ...

    per-level  len, tombstones, half_reserve_slot_threshold,
               limited_probe_budgets, group_steps, salt,
               group_count_magic, step_count_magic

  table-wide   len, capacity, max_insertions, reserve_fraction,
               probe_scale, batch_plan, current_batch_index,
               batch_remaining, max_populated_level, hash_builder


FunnelHashMap
=============

  levels: Vec<BucketLevel>

    Level 0
      slots:     kv kv __ __ ... kv kv __ __ ... kv ...
      controls:  fp fp __ __ ... fp fp __ __ ... fp ...
                 └── bucket 0 ──┘└── bucket 1 ──┘

    Level 1    (same layout, smaller buckets)
    ...

    per-level  len, tombstones, bucket_size, bucket_count,
               salt, bucket_count_magic

  special: SpecialArray

    primary    RawTable, group-probed (like elastic)
    (paper B)  len, group_summaries, group_tombstones, group_steps

    fallback   RawTable, two-choice bucketed
    (paper C)  len, tombstones, bucket_size, bucket_count

  table-wide   len, capacity, max_insertions, reserve_fraction,
               primary_probe_limit, max_populated_level, hash_builder

Benchmarks

See benches/README.md for bench target layout, charts, CLI flags, chart regeneration, and flamegraph profiling.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opthash-0.5.0.tar.gz (170.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

opthash-0.5.0-cp314-cp314t-win_arm64.whl (229.6 kB view details)

Uploaded CPython 3.14tWindows ARM64

opthash-0.5.0-cp314-cp314t-win_amd64.whl (244.4 kB view details)

Uploaded CPython 3.14tWindows x86-64

opthash-0.5.0-cp314-cp314t-win32.whl (224.6 kB view details)

Uploaded CPython 3.14tWindows x86

opthash-0.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl (596.8 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

opthash-0.5.0-cp314-cp314t-musllinux_1_2_i686.whl (631.6 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

opthash-0.5.0-cp314-cp314t-musllinux_1_2_armv7l.whl (666.0 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

opthash-0.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl (557.1 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

opthash-0.5.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (391.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

opthash-0.5.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (418.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

opthash-0.5.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (509.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

opthash-0.5.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (391.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

opthash-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (380.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

opthash-0.5.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (417.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.5+ i686

opthash-0.5.0-cp314-cp314t-macosx_11_0_arm64.whl (357.8 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

opthash-0.5.0-cp314-cp314t-macosx_10_12_x86_64.whl (368.6 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

opthash-0.5.0-cp310-abi3-win_arm64.whl (232.7 kB view details)

Uploaded CPython 3.10+Windows ARM64

opthash-0.5.0-cp310-abi3-win_amd64.whl (247.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

opthash-0.5.0-cp310-abi3-win32.whl (229.7 kB view details)

Uploaded CPython 3.10+Windows x86

opthash-0.5.0-cp310-abi3-musllinux_1_2_x86_64.whl (599.5 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

opthash-0.5.0-cp310-abi3-musllinux_1_2_i686.whl (635.7 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

opthash-0.5.0-cp310-abi3-musllinux_1_2_armv7l.whl (668.4 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

opthash-0.5.0-cp310-abi3-musllinux_1_2_aarch64.whl (561.6 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

opthash-0.5.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (394.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

opthash-0.5.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (421.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

opthash-0.5.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (510.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

opthash-0.5.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (393.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

opthash-0.5.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (385.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

opthash-0.5.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (422.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

opthash-0.5.0-cp310-abi3-macosx_11_0_arm64.whl (358.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

opthash-0.5.0-cp310-abi3-macosx_10_12_x86_64.whl (371.2 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file opthash-0.5.0.tar.gz.

File metadata

  • Download URL: opthash-0.5.0.tar.gz
  • Upload date:
  • Size: 170.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opthash-0.5.0.tar.gz
Algorithm Hash digest
SHA256 dbc424a85c501ff42c455507c0e170d23c3de623acb2f1890f873174b7e9a755
MD5 31a0f7ca13668a236c07c2010e02e994
BLAKE2b-256 bbcf5a629f1b84fe94ea7a3108678092ce08f0dbbd522ed24f5441e8ef17407a

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0.tar.gz:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: opthash-0.5.0-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 229.6 kB
  • Tags: CPython 3.14t, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 81bfa8ba401b2cfe9820576c325dbb1e9ca85254392bf2ff6b14a1c9ec04c775
MD5 29b46a0965e0cc3062477830b20bf85d
BLAKE2b-256 13ffbd660114245109b97e8723e33e96187c551cc7745fea7a5c8bd1bf65a72e

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-win_arm64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: opthash-0.5.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 244.4 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 17c10dc9dc853c3d0dcd506e67a2607f22067fb5d9831595f48fbecde27c6a3e
MD5 9c39cddefcaa9623e1298e6d4aeddb39
BLAKE2b-256 de8fe4187bf68e7afa1aeea7ae13161a75bdc09fdf3ca369ada97b3348fe34e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-win_amd64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-win32.whl.

File metadata

  • Download URL: opthash-0.5.0-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 224.6 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 1283f4cb655fc6b7e3fdbdc67a016ff9b06db10e6fd11f31a8883231c745d6a4
MD5 933c0a78b4873b354441f98b6947c67a
BLAKE2b-256 04be487a778051b43b7129823d8cfc3259d401cb09b2451e7be5485f9f750c17

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-win32.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 116899c0c403f28e6c5d7114efe2050150f8713f767fc36f11e1261b96432f2b
MD5 c007621a9361b48217a52511ea29acb3
BLAKE2b-256 e2c878480ea4aa4b5ea9857eef7bd0e9d0ef7e29a72b5d3ca80584eedb6f8ed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6c816b249acaf80b144a2b6314ec87d349cf8dd8cd914fbdef3348f0be042a81
MD5 1db77fb004501cf627702cda242d7c66
BLAKE2b-256 03fd941b47a3b32495182dbe131f9e55cd3c32f97813ae0b8b3efcd0abfccd8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-musllinux_1_2_i686.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 fafb79b822f5d805764dcb24cf2f511cff7fada7f8599812cef6cf5c4fb20020
MD5 649aee76d18e60a56553b9758868f40c
BLAKE2b-256 70c3aeb174b1ff554cfc3d93f61d6de929f5532abfc29ed9668cfad4eb9d2d19

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-musllinux_1_2_armv7l.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8362fb2ad8ec5cd74e4c9936051ca4ccf29c5316cd122f04d0c7f8afefaeee42
MD5 60437828a50808d399eafa8cba7f01f4
BLAKE2b-256 e9dfc53bf47b1046765bc78a5efa25f77e86ed45447dbb4f504c6a00125aac35

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b3dae668f5e7937f5527282634bed6399905fc6350b53e92c0a67a520c5307c
MD5 3f458bacae4c3d3015de2972ec321b72
BLAKE2b-256 3b0f84d2e2e6df01a020ad2539cd4807df45f2b3debe77d873f8353da9d8f686

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 45fa4a0f16d35a649898c68e82b1e251119c1bc2c869a1fd2807028a0e95a730
MD5 04e97b5ed0736b917621db3ad4b2956f
BLAKE2b-256 62fd5aaf125e07792f05ca8ac029572d911cc051cdb13234d82cab76c13e5b88

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f9e55a459e930333d5584f07efd3adc4a0f5022d1cb1c979743d705c46c4895c
MD5 3cc60cc29f9a989e58c1a7e3f459206f
BLAKE2b-256 f720f78ab22ec15a98da884cb94027153c82eb94b2456659a510c72936acee29

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 56f79b76a67bde19fabc2acdff3052f3ccf97bcc4b4879a3728d5cff46628d3f
MD5 94a3ae6b73a33271b4150a3bd2d19c76
BLAKE2b-256 72ff16348537258cb9d7f627ff3503212bfb3fd6b1d2f0d28b51bbb8eeb33673

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bbcf61e6f5c3082fc3d36b9280b1a8f4ce7a09d50d749f06b89264ebb748d6f5
MD5 30e35e08d37166d015d873e2d01a6509
BLAKE2b-256 959530f75a0658dfa95e7935c09c3066dec15085c55c79cdb79c9003f405cc24

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 3a3e2d87364dbcada99ce4888d4c8104293575d55191dd9bec61b7070b3cf347
MD5 5dcf0c9a15a406ffeb98810d2802795e
BLAKE2b-256 17da364403295f252fc7428fde4105a492d4c8f507e27966143504c1892b4869

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 643f2abb6b7f56ecf868f0ee5f8369c970b255ed89009fb85a24eef8714e18e4
MD5 7aee811d0489c9207d4f02227a43aad2
BLAKE2b-256 7d155f30d0dc0894f15bde1f51a754b9f26cb2b52afbae297266a38a552f0a09

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 684fba4731d15acb70f8d56579e63aa719f3a5dbe7fc2098289a1719e798adee
MD5 2ae5c642be39e8f60003af531a77bdfd
BLAKE2b-256 cf722cc89dd856b30d070a12b2d8cfb1f9ff48dfd58abdf82d5b6980b13509c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp314-cp314t-macosx_10_12_x86_64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-win_arm64.whl.

File metadata

  • Download URL: opthash-0.5.0-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 232.7 kB
  • Tags: CPython 3.10+, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opthash-0.5.0-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 02c2b5aa0f25d1728c23b3f6e84f3a7723dd10c5a6af72ab3fb63c3bde9a2fa1
MD5 97419e8683793f902405bcce4820c85f
BLAKE2b-256 d94e107bf2a0574e0983b1f150ae8d43ae2dcf46f56a843acd1f4fdc9fdcc88f

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-win_arm64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: opthash-0.5.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 247.7 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opthash-0.5.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 68af50e96e8718991db653fd8455ac5f6fcc428968f961fa56d2ad98ee142265
MD5 4dacbe28faeb50dfb1448486ec828911
BLAKE2b-256 21a92da285fe08d220b5fc65c2d3473b2c52c61a8cf390ed8929754d1a40d96c

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-win_amd64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-win32.whl.

File metadata

  • Download URL: opthash-0.5.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 229.7 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for opthash-0.5.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 f37d6f4c64549f0c4353a19f24177fc7d0e832c869625503ed10c55f62665941
MD5 1a8a5b710b74c20871fab3a1d91879d5
BLAKE2b-256 5d06d34fc11b77603aca04cf44e55cf517b506286ff39d11cd2e5d624fec6cfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-win32.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 54daa77b0cbc0eafc13c767a71749c829824cd91c29b43d4ff29eb09107f5d28
MD5 03c1fcc0ea04ef62bf836f62cad9df24
BLAKE2b-256 b1fa59b660f1606d859be1a0365932b9a2250fe2fe852b7e4a32ba4c8178076b

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 bb582378cd8cdfb4ebea041922d7dc4514554896aa0ac2b2f871d171040b9750
MD5 f5c955e6b73740d72147255d4981598f
BLAKE2b-256 4a8efbb440a4f13aacaaaf64f88d7062ac6665d81e58812b9fa777f9b4832d53

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-musllinux_1_2_i686.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 c8bf6ce176828d24734ae5e81a855262f27dbe0b46827e217e1d4c5eb27fa4c9
MD5 f47ce7ae8bcd546093de6f55783b2bf4
BLAKE2b-256 1066914323af94b602d83bfff6e7728f1bfe6b2dba20c191b24051eef809df9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-musllinux_1_2_armv7l.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8aedd7c3fa4c3378b350e74fc2c8ca4b6c55e3f65565c088cf23622a6621ca0f
MD5 d7e4923c7761aca9ec4e95a46d76af5e
BLAKE2b-256 25aba92362b506936950b27dba5a49bbca03e30b0ca26d9c2d0bf7e45a9c5c5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-musllinux_1_2_aarch64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6545f51f725bbee2b45a0c9a1633701bf07181e188d620fb0c71e22ea3939e5b
MD5 14d3276e3b99b4bb24772cfea9269b5e
BLAKE2b-256 1efd656d8cccbc98ec53066e96b5e8ee5d30f58ff4ddeb7b8fd6e56465d5e378

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5aafba2bc601c55a1b758b7afb15cdd9c3789ef37cddbbd8727f59e9d267e928
MD5 2ddd4ce8bb02e2e59102385ada42c1ba
BLAKE2b-256 f2bd96e567e985f22369854a08478ee018912a42db69b74264e0b0277a365467

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4adc522b71462860d77d1e3b86e6c477dd906e3b1f342adb7a78a9926f806480
MD5 e261685ffc1838e7b613e6cff047a3ef
BLAKE2b-256 bc391cac1541e2fa0bc59d93d8c4b0b12ec16b8c363f789e7f08004506c50cef

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6ca73c4d0e3c8550305c8cbc9a8cad716a45a8b14711b6cb3ae83ff9ad0288ad
MD5 ea68a602b93fcf101dd660d856dd0652
BLAKE2b-256 0483fc4fb5f692ac0424fba0e609233b5ec944fe476a1047324c2436e041e05b

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cf9f56714277e659d153d84beadece05b25a53295fbeb74ebb3eff66ae0ed44a
MD5 4c7e4500bcedc33cff61710cc5f2894a
BLAKE2b-256 f7edceceac0362745f467de9725b3d1c15d81a58c592c9f77a7aef63bf5a4027

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 38abb621bf3e0cabe97ae8df82179b4d1fdab7074ba6e99fdd31ec0d8a10eb84
MD5 5a64bccc046ae5c3a18c05328259189a
BLAKE2b-256 7d061f6776a76dde76b777f5d5d674186bcf832d47a8df90d93f69b441b8ea0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c616370261bbe9c4faad4211d615b687d2cd32986bbaa55bfdb5b4da74d86f00
MD5 060d6a6505e2417386c290c8739e1694
BLAKE2b-256 94cdb5dd2345061e26cee1ac78ebf1dcda166478dbe182495b2d004fcfd8a111

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opthash-0.5.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.5.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ab72a277d8eb0c44a1efdd311b206586c0e7e3d6addfbb6426a3c12cb04daf36
MD5 caffce3849d568a7cc65444e7a9d9acb
BLAKE2b-256 56da597423a0381e00815108806de1c0413313b804c0f1e064c82e2a03ccf689

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.5.0-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on aaron-ang/opthash

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page