Skip to main content

Rust implementations of Elastic Hashing and Funnel Hashing with Python bindings

Project description

opthash

Crates.io PyPI MSRV Python CI Python Release Rust Release CodSpeed License

Rust implementations of Elastic Hashing and Funnel Hashing from Optimal Bounds for Open Addressing Without Reordering (Farach-Colton, Krapivin, Kuszmaul, 2025) — see References [^fkk2025].

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 SwissTable-style triangular probing within every level [^swisstable] [^cppcon2017] [^hashbrown]. Per-level salt re-randomization [^cw1979] decorrelates probe paths across levels. The default BuildHasher is foldhash [^foldhash].

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

Both maps mirror std::collections::HashMap's API and support the same operations. Each map starts with zero allocation (new()) and grows dynamically on demand. The reserve_fraction headroom knob is exposed via dedicated constructors.

Usage

Rust

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

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

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

let mut map = FunnelHashMap::with_capacity_and_reserve_fraction(1024, 0.10);
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)

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

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_ptr

  Occupancy is derived from SIMD scans of the control bytes.


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

  levels: Box<[Level]>

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

    per-level  table, len, salt, group_count_mask, tombstones,
               half_reserve_slot_threshold, budget_cap

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


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

  levels: Box<[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  table, len, tombstones, salt,
               bucket_count_mask, bucket_size_log2

  special: SpecialArray

    primary    RawTable, group-probed
    (paper B)  table, len, tombstones, group_count_mask

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

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

Benchmarks

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

References

[^fkk2025]: Martín Farach-Colton, Andrew Krapivin, William Kuszmaul. Optimal Bounds for Open Addressing Without Reordering (2025). arXiv: https://arxiv.org/abs/2501.02305. Establishes the elastic and funnel hashing schemes implemented in src/elastic.rs and src/funnel.rs; the funnel "special array" split into primary (group-probed, paper B) and fallback (two-choice, paper C) follows the paper's construction directly.

[^cw1979]: J. Lawrence Carter, Mark N. Wegman. Universal Classes of Hash Functions (STOC 1977 / JCSS 1979). DOI: https://doi.org/10.1016/0022-0000(79)90044-8. Foundational hash-based probing model the FKK bounds rely on; the per-level salt re-randomization in Level/BucketLevel (see level_salt in src/common/math.rs) follows the universal-hashing assumption.

[^swisstable]: Abseil. SwissTable design notes. https://abseil.io/about/design/swisstables. Source of the 7-bit fingerprint control-byte layout + SIMD group scans used by RawTable (see src/common/control.rs, src/common/simd.rs) and the triangular (idx + delta) & mask probe sequence used in ElasticHashMap::triangular_group_start and FunnelHashMap::special_primary_triangular_start.

[^cppcon2017]: Matt Kulukundis. Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step (CppCon 2017). https://www.youtube.com/watch?v=ncHmEUmJZf4. Talk introducing the SwissTable design referenced above.

[^hashbrown]: hashbrown — Rust port of SwissTable. https://github.com/rust-lang/hashbrown. Used as the absolute throughput ceiling in the Criterion benches (see benches/README.md).

[^foldhash]: foldhash crate. https://crates.io/crates/foldhash. Default BuildHasher (foldhash::fast::RandomState) wired up in src/common/mod.rs.

[^prefetch2007]: Shimin Chen, Anastassia Ailamaki, Phillip B. Gibbons, Todd C. Mowry. Improving Hash Join Performance through Prefetching (ACM TODS 2007). PDF: https://www.cs.cmu.edu/~chensm/papers/hashjoin_tods_preliminary.pdf. Motivates the intra-probe issued one group ahead (see src/funnel.rs).

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.10.0.tar.gz (196.5 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.10.0-cp314-cp314t-win_arm64.whl (233.5 kB view details)

Uploaded CPython 3.14tWindows ARM64

opthash-0.10.0-cp314-cp314t-win_amd64.whl (247.2 kB view details)

Uploaded CPython 3.14tWindows x86-64

opthash-0.10.0-cp314-cp314t-win32.whl (219.9 kB view details)

Uploaded CPython 3.14tWindows x86

opthash-0.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl (603.0 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

opthash-0.10.0-cp314-cp314t-musllinux_1_2_i686.whl (626.8 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

opthash-0.10.0-cp314-cp314t-musllinux_1_2_armv7l.whl (664.9 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

opthash-0.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl (563.4 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

opthash-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (397.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

opthash-0.10.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (417.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

opthash-0.10.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (508.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

opthash-0.10.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (390.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

opthash-0.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (388.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

opthash-0.10.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (413.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.5+ i686

opthash-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl (364.1 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

opthash-0.10.0-cp314-cp314t-macosx_10_12_x86_64.whl (375.0 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

opthash-0.10.0-cp310-abi3-win_arm64.whl (237.7 kB view details)

Uploaded CPython 3.10+Windows ARM64

opthash-0.10.0-cp310-abi3-win_amd64.whl (252.0 kB view details)

Uploaded CPython 3.10+Windows x86-64

opthash-0.10.0-cp310-abi3-win32.whl (225.1 kB view details)

Uploaded CPython 3.10+Windows x86

opthash-0.10.0-cp310-abi3-musllinux_1_2_x86_64.whl (606.8 kB view details)

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

opthash-0.10.0-cp310-abi3-musllinux_1_2_i686.whl (628.1 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

opthash-0.10.0-cp310-abi3-musllinux_1_2_armv7l.whl (668.0 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

opthash-0.10.0-cp310-abi3-musllinux_1_2_aarch64.whl (569.2 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

opthash-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (401.3 kB view details)

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

opthash-0.10.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (420.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

opthash-0.10.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (511.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

opthash-0.10.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (393.1 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

opthash-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (393.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

opthash-0.10.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (416.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

opthash-0.10.0-cp310-abi3-macosx_11_0_arm64.whl (364.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

opthash-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl (377.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for opthash-0.10.0.tar.gz
Algorithm Hash digest
SHA256 4bbdea059b7dbeaa718b538c831194e0945760184efb49acf03a76399d210a78
MD5 7ed5d34fa540257c5bcb57f5e01b9292
BLAKE2b-256 8d666c37078cc33f0c8dad404c2d5e0f305cbe7680b997271be0a44f462a1a5e

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: opthash-0.10.0-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 233.5 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.10.0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 79a841fc57934324fdbc017e0fdfa084a6896cb1847dbe2c83d43f638884979b
MD5 7ffe2d2e3edb278028bec006a3f6e296
BLAKE2b-256 7903fbaf48fe152003cbe5aff80314051f5f3de40ec613f4c9d940bdbed84fa9

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: opthash-0.10.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 247.2 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.10.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 ba3ade9a6229fb7f1401c155db3c65e658923fa85fd51b69d29afb7e05f915d4
MD5 dd0c88bc4a269ebc4db4d3352c0f29f2
BLAKE2b-256 921758870a3747ae66eb01aba27579f14468a8960ccd8d67b9511bd50436efa2

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-win32.whl.

File metadata

  • Download URL: opthash-0.10.0-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 219.9 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.10.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 28f9a19343cda9cd2bef68a2431131e375954c9e7689eb87845b245428b7dbb0
MD5 2ee25c60e6643a689c46123c650f33db
BLAKE2b-256 dd91fa516785435164ab267d9a4fdd114239d5d094562e4b270510559ee8b7f5

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 23aedfc269d22ac99d43cea31334e219af24c649601a1d1b782cf19d5951c7fe
MD5 0782cd2150ebcf39cec67b78a9391831
BLAKE2b-256 a4cefa8aeece530fb3bc6b7078f8b9406cc2710df804e07c632180ace732bc96

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 90f5191eda3aeaabb1b10fbe77ec68b796fc83eba3422a9a4b9ac72c77f39da4
MD5 143a01d7e21601fb6cb2fafad4f34a1d
BLAKE2b-256 4589446502ae22f1cf2bc36a5edf6673dde4226ca07596363c848c5488e51b5f

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 55d888038d2a4ab746cc39d4870bfd66f2e5263b3eab0712bc98b703afc8cc78
MD5 8f60cfb1e7d16c299d45f51a36a35b19
BLAKE2b-256 e4188cfd6e2df498b4fb5a55ddf9c584f59570bd52c1239cb9dfdd9d09c80147

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 332f71aa866828d3e3abb96a4f563c45bfb472064497e87ddfb8e1136a5517ff
MD5 898f1420060263f1ae94f7d613520a5b
BLAKE2b-256 d27b206381b81755ab5aedbbae170104112024f96651b7b1e7ca66153172bcdc

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef3dd464a735b1372dcf5212575464e2fa25b93db48b4c446b7e4bc34bbe2e59
MD5 46acffec5a3b333f57be6db3657cfa91
BLAKE2b-256 4405b5503d1f77734541ea18898c99aca36fa4b0a8c08add7540a7bb2b0a2bd9

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 51c3c8999af7c6d3968fba327ef7e7c18d4e03ee1d32a4dd767c4e62f8d744df
MD5 e6c3d52cc9f36efe6a7446f1466b58d6
BLAKE2b-256 3c224cfb76aae3001f4195d505743b003e4030f8e6f349097643dc55ce27ae2e

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 227bbbc2f7d1e8f5517c6a3b17420e6a65cfa4d653bf19fe379a3ae2512dfb54
MD5 42603838abf6cc741f65ec475c85e3df
BLAKE2b-256 1a94a5ed89d8300c6bd1a385610b020f01d322a5f9bbe200d3ff164699b62a2c

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 9594ada6e2d884a61f67b4674ecfa7ec784594612e86485e5b0d112b31ac3c4c
MD5 39b173b255059a420885027329b52211
BLAKE2b-256 ce094fb696b2b78fa59b601b9c873bcab4f068be5e09701c8974198f4c675744

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3b657df8dcfe6d5ac4d40245271682ce09fb063d4e72bfad0f295a9aa556d16e
MD5 0f8a6ba453540cee33ee2f9b40484bf4
BLAKE2b-256 3c84fe433afae73c479b1de176ded23aaa65ce8e646d8b299fa7d45530ef9fe6

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e53c9e9e79a22d7c0a122721616622a186149cd68e917d66b4c98043ceb9bf1f
MD5 352733e4d2d7e05925761c1782e9f3a4
BLAKE2b-256 fae04dd89e8cc90291e84bb05bc448090a3bd9682e60bf1f1ee7409df5e2f959

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0f986ffd6028a1910a0b77a2b7c59b30d17480121ffda4074bb8af3be90a7e98
MD5 cfe7bfa701b314672a1b845874e7d449
BLAKE2b-256 53c3c1776c9e6c57ef8b0a8331b0b032bd148f977367cd3edf5a67c277319162

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4f659c137afafecfe6ec972c5445ed59d481e402ee5a56d526c04c1bab56e2c8
MD5 326fd7b8220e5815f60a6a2c77ce3c14
BLAKE2b-256 1746888848b813053a176b6506e3c34c51dc2321b92b2bcb60cc5cd7a9b1b4b8

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-win_arm64.whl.

File metadata

  • Download URL: opthash-0.10.0-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 237.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.10.0-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 c4a4de415b69d5b52ff952d293effcf44607757dacce05aba7bf6a14e5b75e76
MD5 197446d398206964ead3030a40a1122e
BLAKE2b-256 770f81dd9b1df9d42378e5c8c3027823a956098ec65bad507283a533dd5a2ddb

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: opthash-0.10.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 252.0 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.10.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 922764e6cad1fb6e09deb1734eaf77e099564dfa5a0a43c5703719883ab1dea5
MD5 daeadcdbcd56a433570364420eae2b19
BLAKE2b-256 ea4cee841ccf00529544631160addcead0ede72777281e47e8bc1caea745bd9e

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-win32.whl.

File metadata

  • Download URL: opthash-0.10.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 225.1 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.10.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 f880eebd12a60de87998400b2f1d177e6ea37b3cbdc2c481d7fe169c28f57211
MD5 d644213ef1d85f47d8a3e08ff9498f28
BLAKE2b-256 93e272e9ca9758c19fee121dd3690b3e6393e947feb72560dbf934a39100e65c

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 23941fa2d661047b73c0b80ac027274e908f27346bd76f54152de8c16b8dfd81
MD5 fb5b1179650b4b110df07036415cbb2d
BLAKE2b-256 b4076a79f757328139f5ae723975f56e732c87693a262eaa879920e667fbedf7

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 341b560184922c7a9d6a7cd77f8cbbc76f1f27285a8c2eed04e33e0a5c5626b1
MD5 4c1ca69f3272d9c213db3282aec424d2
BLAKE2b-256 ee1073e623691f3396ef8c491c9c6a0c20a330f547a263c9e8c7c8ad390b1ee1

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 401cf8bfd65b27254db292844a8ef709148e37a00d2c7063576d1616f5429509
MD5 a43eb00c658853ec2c26419153ebcf51
BLAKE2b-256 d39090efb1d9e42625336dc3b65b461aeef4e9388e7a15d8e73709facc835372

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bd0c47749f6546936693fa3d96940a023228f119e884418b42edb2d30c21958f
MD5 734e4f77dce7aef8a32a1de5f1843f9d
BLAKE2b-256 876782f89bf81efe3ab91947e185b0ef14a187b1e9b5ef2d00b2c5f4bf84b452

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b2d38b0c7580e1cf74963684bba9e3e2f8987532603991f6dda92f2401f9c8c8
MD5 2d841a52b1adc70b1d0ff1760565b4de
BLAKE2b-256 e0b831d1ac51ebf508e8a399a9242cf332cfa0570d684e61b3ed90a9036e8e3f

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1346d328ba47b50374faaf646dca40ebcaddcc6afdc426b0d73cb4839365cb7f
MD5 fb18a0a37a019b645b4d59c4529d3e21
BLAKE2b-256 fb4f1d78e2cb90825157f8427ab5e59dce417d999fc825527c4ef9f8eed70e61

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e7ee106fc5195d26e5c50c512e7649889a74596ef821eb62867ca264e5ed3b5d
MD5 b52c6f7d287747fec9b028f58e36f273
BLAKE2b-256 98e785204ccc24777674cff3dc71dea0058b0752137ed39da5d776e968cd18d3

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 48903b632ae1f67d12905c4ad9bb0db46b6492bc06d962044b40fc70020ab88b
MD5 f83b3957c7574b5f202cadfa03abd088
BLAKE2b-256 469e462a42fc6a3ce651c19e7fe86e02e71d15026cd29653b4d5c0e64537b57b

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 670b79e9cc2508f5e985f651229552ced94872cfe1e401406e658c4826c20c72
MD5 fd400a770754319072935b21c73e1dc2
BLAKE2b-256 d2a8aa279781e9452cc379555d8bc825a104ed0f3fbc6321138c1ab5f1e1e202

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e5b59373f751fe469b3706bdbd2f2c678865e9c9064dcc571be4872cbac971e2
MD5 8d668645605585038a8b2d36ac75965a
BLAKE2b-256 414c253c130b5eea686e4267f52d93f5fff068d2ec13dbbebc8583531cbeb0a7

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd9125570b7e290c2befde51fb4e0a55abfb286cb7f80ba031082688b20237b1
MD5 4a61ee2e2aadda39450b902e3ce9a544
BLAKE2b-256 7f66363972920abe3a8f14ca9dd8610eeb2ddd7e5b744e4f428d34a2a82c7bc2

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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.10.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 958845fe6f8bbda999086b88606d4b12546475709d3bfb645bbc00e88dd8c2df
MD5 1c5b6ced8b0d9d53af28e3bb5200d696
BLAKE2b-256 95008aea959e5bf999128fc66f21b1cef4baedd40b6af01d4521ce5c4bee6233

See more details on using hashes here.

Provenance

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

Publisher: python-release.yml on aaron-ang/opthash-rs

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