Skip to main content

Rust implementations of Elastic Hashing and Funnel Hashing with Python bindings

Project description

opthash

Crates.io PyPI MSRV Python CI 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: a single-Arena allocation per map indexed by per-level descriptors, 7-bit fingerprint control bytes, SIMD control-byte scans for occupancy + lookup, and tombstone accounting [^swisstable] [^cppcon2017] [^hashbrown]. Per-level salt re-randomization [^cw1979] decorrelates probe paths across levels. The default BuildHasher is foldhash [^foldhash]. The two maps differ in how they probe within a level:

  • ElasticHashMap<K, V> — Levels with geometrically halving capacities, each probed by a SwissTable-style triangular sequence ((idx + delta) & mask); inserts follow a per-level probe budget.
  • FunnelHashMap<K, V> — Bucketed levels (paper §5): a key maps to one bucket per level; overflow spills to the next level, not other buckets. Plus a split special array: primary (odd-step group probe) 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

Arena (one allocation per map)
==============================

  fp = fingerprint (7-bit control byte)
  kv = key-value entry, __ = empty (CTRL_EMPTY = 0x00), xx = tombstone (CTRL_TOMBSTONE = 0x80)

  All control bytes pack first, then alignment padding so the slot region
  starts at `align_of::<SlotEntry<K, V>>()`, then all slots:

  arena::ptr ► [fp fp xx __ ... ][fp xx fp __ ...][fp fp ...][  pad  ][kv kv kv ...][kv ... ]
               └─── ctrl L0 ────┘└─── ctrl L1 ───┘└── ... ──┘         └─ slots L0 ─┘└─ ... ─┘
               ▲ each descriptor caches `ctrl_ptr` + `data_ptr` into the arena.

  Each descriptor stores cached `ctrl_ptr`, `data_ptr`, capacity, plus
  per-shape metadata (salt, mask, etc). All slot/ctrl/SIMD ops live on
  the `ArenaSlots` trait (`src/common/arena.rs`).


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

  levels: Box<[Level]> (descriptors only)

    Level 0    ctrl_ptr, data_ptr, capacity (~half of total slots)
    Level 1    geometrically halved
    Level 2    ...

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

  arena:       Arena (the single allocation backing every level above)

  map-wide     len, total_slots, max_insertions, reserve_fraction,
               batch_plan, current_batch_index, batch_remaining,
               max_populated_level, hash_builder, alloc


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

  levels: Box<[BucketLevel]> (descriptors)

    Level 0
      ctrl region   fp xx fp __ ... fp fp xx __ ... fp ...
      slot region   kv kv kv __ ... kv kv kv __ ... kv ...
                    └── bucket 0 ──┘└── bucket 1 ──┘
      (xx in ctrl marks a removed slot; the slot bytes may still hold
       the stale kv physically, but are logically uninit — never read.)

    Level 1    (same layout, smaller buckets)

    per-level  bucket_count_mask, bucket_size_log2, salt, len, tombstones

  special: SpecialArray

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

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

  arena:       Arena (covers every level + both special regions)

  map-wide     len, total_slots, max_insertions, reserve_fraction,
               primary_probe_limit, max_populated_level, hash_builder, alloc

Benchmarks

See benches/README.md for comparison charts.

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 the shared ArenaSlots trait (see src/common/arena.rs, src/common/control.rs, src/common/simd.rs) and the triangular (idx + delta) & mask probe sequence used in Level::triangular_group_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.

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.2.tar.gz (193.0 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.2-cp314-cp314t-win_arm64.whl (296.5 kB view details)

Uploaded CPython 3.14tWindows ARM64

opthash-0.10.2-cp314-cp314t-win_amd64.whl (318.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

opthash-0.10.2-cp314-cp314t-win32.whl (287.9 kB view details)

Uploaded CPython 3.14tWindows x86

opthash-0.10.2-cp314-cp314t-musllinux_1_2_x86_64.whl (673.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

opthash-0.10.2-cp314-cp314t-musllinux_1_2_i686.whl (713.1 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

opthash-0.10.2-cp314-cp314t-musllinux_1_2_armv7l.whl (742.1 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

opthash-0.10.2-cp314-cp314t-musllinux_1_2_aarch64.whl (633.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

opthash-0.10.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (465.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

opthash-0.10.2-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (496.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

opthash-0.10.2-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (595.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

opthash-0.10.2-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (467.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

opthash-0.10.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (457.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

opthash-0.10.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (502.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.5+ i686

opthash-0.10.2-cp314-cp314t-macosx_11_0_arm64.whl (435.3 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

opthash-0.10.2-cp314-cp314t-macosx_10_12_x86_64.whl (453.5 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

opthash-0.10.2-cp310-abi3-win_arm64.whl (303.9 kB view details)

Uploaded CPython 3.10+Windows ARM64

opthash-0.10.2-cp310-abi3-win_amd64.whl (324.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

opthash-0.10.2-cp310-abi3-win32.whl (297.0 kB view details)

Uploaded CPython 3.10+Windows x86

opthash-0.10.2-cp310-abi3-musllinux_1_2_x86_64.whl (674.7 kB view details)

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

opthash-0.10.2-cp310-abi3-musllinux_1_2_i686.whl (715.2 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

opthash-0.10.2-cp310-abi3-musllinux_1_2_armv7l.whl (744.5 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

opthash-0.10.2-cp310-abi3-musllinux_1_2_aarch64.whl (637.3 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

opthash-0.10.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (468.0 kB view details)

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

opthash-0.10.2-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (498.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

opthash-0.10.2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (596.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

opthash-0.10.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (469.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

opthash-0.10.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (462.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

opthash-0.10.2-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (506.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

opthash-0.10.2-cp310-abi3-macosx_11_0_arm64.whl (434.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

opthash-0.10.2-cp310-abi3-macosx_10_12_x86_64.whl (451.8 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: opthash-0.10.2.tar.gz
  • Upload date:
  • Size: 193.0 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.2.tar.gz
Algorithm Hash digest
SHA256 853f4f4aed2f5c79f48fb444571e722c5bf06cd0f2e56aa9ec8a8f4990f3500f
MD5 7c14fa615e07dc9a4b5099a0dd0dfe87
BLAKE2b-256 6573782307fa6ecdde83aa4aaa5f6204b998b361b98012f1609c5dd1fb9f0e0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2.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.2-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: opthash-0.10.2-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 296.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.2-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 ce7d8fd63dc74f61865c96014638313b5b12dea9602c6ee991d49027e69e93a9
MD5 f881a152f6f0e3bf93894855c668ef38
BLAKE2b-256 4aa0524e2dc1d14b0c3046956a25f9511c5a152383b1a9c2f4fa5e330f3ded4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: opthash-0.10.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 318.6 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.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 e0369821b2af82beaadf83f11b71bddd6e41c60f57064e417a05c676975fd181
MD5 454c27c20d522517c471f83f8d68a0e2
BLAKE2b-256 4a3eb80624f7020cced726a1e821962c1a683bb56bf6899f25796f9fc754d47c

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-win32.whl.

File metadata

  • Download URL: opthash-0.10.2-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 287.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.2-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 0a9fe2fbffa77c4771b9a93e3e0f851b0004e4eb4aaf64622f0fc3ce1230b2f1
MD5 bfb5e9e833c87f14b63971e06e45b55e
BLAKE2b-256 30cd9c2a685e713ede30f44f5ccfb309ee68ce52c1fc4b21cfdcf162d1f6a86f

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1a37f2bab5314951fe35b78575d5f2a7c74e252a8f93201f6648aea130c563f8
MD5 1a77db05146a34f086384ab7a9b6b228
BLAKE2b-256 0c3fcfee5cbf7075b5fd86a53abaec5ae13e0f360d2a64e2a3fdfea325913c12

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 de5c4035ba482a056113ddb1ff92a0b96c16413460fe2975972d38f5a9f4a4d0
MD5 1d87631561dfb22325e8d0361d3fa61e
BLAKE2b-256 b366df93eb218846667358cd7b3663fa02aae8f74e8dff74e057c3d2bcd381c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 c28ac354c845f73a92296c53b289218f3944f5676d4110cffae9abd424219038
MD5 87da2135a9c2f3743129d476424ddef3
BLAKE2b-256 e96171c6736fdc2469995545073e957c66f78b7c2e8d6e43a2b2d93c038cb863

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 10b4190ba333fff8f72ac4aab521e1c182977aaf0b88ae5afc6d33e6f3134c21
MD5 a713232f1981a9c66ac66e1ca3ff04ce
BLAKE2b-256 5d85a5a7baf2f6169df0f92303531466b0dd7b6ce4ae73bd3c0741f27dbbeed3

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6cd30124e54b7184c8882d65297562b7af902ce9d6ed8d009c7332ddd99473fe
MD5 2cf87ec3496505d286aa862e6e753222
BLAKE2b-256 97fcf100e3708bb1288a986bddfe8fa8d3e025238f025d11276f1881cacdfa06

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3b37e288fd8cd7508dcc5f0144108cae6e2237034c04cd6576d8d9cf8aaf9a45
MD5 71d798de5c618a5f1c69a89ddfb272a1
BLAKE2b-256 a6d85d13715fc6e4611ca65d3c044c66a261c673364f2bf8d91d294e67f72976

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c284f614f56a5ed002dd8f0590a74240279bb235daccc1a97250e8379b92bb89
MD5 cb1c17af5c7af0199a86364f09d77036
BLAKE2b-256 a36154edad118ec757238d7d3e15093bb5a93435ea0255a1085320ff437c14a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ba070f186612c1fbb2a530f0f3f0e8f9276a0ba75db94fe51ae9c15fab6f68df
MD5 27865a22b34dea3ca563770c2999b9cd
BLAKE2b-256 78a0ce80379a7aa1407515ec8bc3ad9260883355c31fe72124ed88db21dfc226

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 09cbf5ff613de6b6147e660ea8705e86ed0c28b6699aa06d32dfd0d863f95e10
MD5 ae7345831a94bd339701d1336577b1d7
BLAKE2b-256 8baa454db6139aa60630489d0d328b5fb4e4c082b233daa102da18af3d19a3aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 9b4add621c1b48e3de4a6f988991fc075b60c24293c3347d48116c4ca6220194
MD5 8db02bc393b9b9d9e192b65e8dcf2841
BLAKE2b-256 51a688b0732ce022988cfbb3f86251bd17e9e9027b0a91cac6fc836b7703f093

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 91f8319dd1ee951414d0a143d36cde501cf2d97993f6c132753a2026c6f6061b
MD5 e3c9243adebe75d995d3e6a199f3f892
BLAKE2b-256 e7cf37aa09a4c2d17b66270cd78d5daec55f03e4cbb039ffd9424d359f4748a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d11e699909d0e58fc3cd6641b5e9b69558f9310a4224347a567e268cab2a3e4c
MD5 b939b71ec546791977353dad2ca154c6
BLAKE2b-256 34c9e12f4b7dfcdbb2ebd908c0af8d58fd4a6342ce8542c5dc41c2c038b2f13a

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-win_arm64.whl.

File metadata

  • Download URL: opthash-0.10.2-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 303.9 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.2-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 7d94af14926f2cab3ef773af8977b5ad16fb5b4a991c99fc0546c241a9389aed
MD5 b1025992bf587cf3482f4c62e0b1117d
BLAKE2b-256 2ddc198849682558020ca04de37774f689130a1b2ce2f6bfa983ecf58048e6c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: opthash-0.10.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 324.4 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.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 de93fcb01ab21310ea363189a52097d7962e80e8cb0d06cc4093730c768c4527
MD5 1135cc32abe7d3a0746563b524aab533
BLAKE2b-256 3780e81330d0295bae0c836464cf95d261b38c8eb43285b75e02cdc1ff5f634b

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-win32.whl.

File metadata

  • Download URL: opthash-0.10.2-cp310-abi3-win32.whl
  • Upload date:
  • Size: 297.0 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.2-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 2b4582d609625920f303f1d114e0103772d6d7de15daf73db605a82db74e9992
MD5 a9a7447ba24016888d4fdb975cb01c60
BLAKE2b-256 3d9d347d4fac650e6c8ed320eb32bb099023950200f0602af34c3e739f1812a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f509128731e1742cadb9e099f378039dfd0466752a4269ecb05135bfa799fd87
MD5 9ca68c8e65592fd63d3c9b86e32ca6b3
BLAKE2b-256 eec4be3526da06faef0feac07e0f06f7d526e861741d8d3e26c82fb008bb354e

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 e27737f59b675fb3bc3c695bf063246e76b218cd812c465d0876035f3e431364
MD5 ab6828d23fbaef889ba198d9f694c961
BLAKE2b-256 398f5465dd107d2a0f8796b24c1bb80f8a4037b68fbcc7ed59b726dd9ba0b43d

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 ba7cd7832d6d5f591667a7308131cf18d800045614c9016e143a280cedc51ab9
MD5 c32491baf611321f30a38916c8091362
BLAKE2b-256 f6fdd852a014a5950e95c4e1fc5e7ed5823cee2ff460acfdd8b436c2f1cd5b3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7fc5dd0819b69c3f5e8191e700c8df8efd32f35cf1d1efe640c39066451e3bc8
MD5 01e2d541fd69298306b396e1109458c9
BLAKE2b-256 e076ca9b8e1b2adf58869a0f297bd8ac5fbbc650d9887a719cf6c86f19bea6b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3883a42f25f6ae9eed558965ca8c4b1cbfa54733d0340f8c48ed5a021c4c48db
MD5 787c0bae8cb29466c604133596ef87b2
BLAKE2b-256 f576ea36300338a02980e136efd54c69400a05e0d3d000ecfbee8444f154baf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0f89d1c5a9c5bc687661ba5fd6c923bfeb032d60bdc15b8083e62fee93ecb715
MD5 c49e0dae65c38f074b5863dac407340c
BLAKE2b-256 140bdb8d62fe5771a5b287106084533cf00a5489364fe45dfc651f4deeb8b9c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 aff3d96871e93a54494015f288a8e65f2b31d58fc0ed620c85fe3c8276dba980
MD5 3aee74535e47d30fa6a1a01f04022a8f
BLAKE2b-256 b78521ba60b4ccb226d07cc9c7d524d640349bd0ee356a0e92368de5e01d2884

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d3bf44aa3cb2f0d9f2160d02493d038f29408ab33996e9d974a0a82c5a758248
MD5 b39d6c5a770fa9438cdd0c2db7ffc777
BLAKE2b-256 a9b3851d2c9379bf8dae66515c0de00e429553871cb235909da2f28f6fbe6ef5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 96e72e8b9725250493dfb64f8ec0c16f1ac65c2a2f8d66ed3326db0a47cb2965
MD5 9992f997aabec1aaa7b49f2ca7c76c1f
BLAKE2b-256 5f9fbf28415edcb9278d4f014f1a7fb1c775c15901487c81fdfa8fcdc1bb26d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 17e37c6fc10dbad314acc7623b0ca5d1c7b0fb4bd4498a0996ec01b388f22bc3
MD5 da3e9df956f57b2f717c80716e7b6e1c
BLAKE2b-256 e2863e9a984d655b010661f21d4fe2b9a9ee40baa61a50139bd2a097eb996dd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8a791c787224e930db8261cb7f76d1485ff26df544d83619465e88f5c17c680
MD5 15072c4db2ae623c162fc167b47e5fb5
BLAKE2b-256 00bdb55443343a46460aabf600a16a3307ac2f79123b54b00d9f4649b5a2e1c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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.2-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.10.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 13c6a3916825eab53f317a5d00cd3b5643097d577c410aecccb6e972127b3f64
MD5 270d673d6da64cf1181ff0824b600508
BLAKE2b-256 9b874223cfab845e31b0ff49c7c8c9dcd3fe7026d65bcf7a0249f90b87264430

See more details on using hashes here.

Provenance

The following attestation bundles were made for opthash-0.10.2-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