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) — 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. Funnel's special-primary probe issues an intra-loop prefetch one group ahead [^prefetch2007]; bucket selection uses Lemire fastmod [^fastmod] to skip the hardware divide. 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 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, salt, group_count_mask

  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_count_mask, group_summaries, group_tombstones

    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.

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 prefetch_read(group_data_ptr(next)) issued one group ahead in find_in_special_primary / find_in_special_primary_with_candidate (see src/funnel.rs).

[^fastmod]: Daniel Lemire. Faster Remainders when the Divisor is a Constant: Beating Compilers and libdivide (2019). https://lemire.me/blog/2019/02/08/faster-remainders-when-the-divisor-is-a-constant-beating-compilers-and-libdivide/. Algorithm behind fastmod_magic / fastmod_u32 in src/common/math.rs, used by BucketLevel::bucket_index to map a hash to a bucket without a hardware divide.

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.6.0.tar.gz (190.4 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.6.0-cp314-cp314t-win_arm64.whl (230.7 kB view details)

Uploaded CPython 3.14tWindows ARM64

opthash-0.6.0-cp314-cp314t-win_amd64.whl (244.9 kB view details)

Uploaded CPython 3.14tWindows x86-64

opthash-0.6.0-cp314-cp314t-win32.whl (225.2 kB view details)

Uploaded CPython 3.14tWindows x86

opthash-0.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl (598.1 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

opthash-0.6.0-cp314-cp314t-musllinux_1_2_i686.whl (633.3 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

opthash-0.6.0-cp314-cp314t-musllinux_1_2_armv7l.whl (668.3 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

opthash-0.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl (557.6 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

opthash-0.6.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (392.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

opthash-0.6.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (422.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

opthash-0.6.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (510.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

opthash-0.6.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (393.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

opthash-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (381.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

opthash-0.6.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (419.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.5+ i686

opthash-0.6.0-cp314-cp314t-macosx_11_0_arm64.whl (360.2 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

opthash-0.6.0-cp314-cp314t-macosx_10_12_x86_64.whl (371.7 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

opthash-0.6.0-cp310-abi3-win_arm64.whl (233.8 kB view details)

Uploaded CPython 3.10+Windows ARM64

opthash-0.6.0-cp310-abi3-win_amd64.whl (247.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

opthash-0.6.0-cp310-abi3-win32.whl (230.2 kB view details)

Uploaded CPython 3.10+Windows x86

opthash-0.6.0-cp310-abi3-musllinux_1_2_x86_64.whl (600.8 kB view details)

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

opthash-0.6.0-cp310-abi3-musllinux_1_2_i686.whl (637.1 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

opthash-0.6.0-cp310-abi3-musllinux_1_2_armv7l.whl (670.6 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

opthash-0.6.0-cp310-abi3-musllinux_1_2_aarch64.whl (562.0 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

opthash-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (396.0 kB view details)

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

opthash-0.6.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (425.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

opthash-0.6.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (512.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

opthash-0.6.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (395.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

opthash-0.6.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (386.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

opthash-0.6.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (422.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

opthash-0.6.0-cp310-abi3-macosx_11_0_arm64.whl (359.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

opthash-0.6.0-cp310-abi3-macosx_10_12_x86_64.whl (372.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for opthash-0.6.0.tar.gz
Algorithm Hash digest
SHA256 16ccc70db1497b85e896f2b15ac0ca041e3bacf7975479c76b2600ab777c9bde
MD5 66f032d5d303a2e156989f081189714e
BLAKE2b-256 b0f98f4886b2c624bfa2986b76efefa3bf2a5a094e38b21f2fe1acaeb5c7a3e9

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: opthash-0.6.0-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 230.7 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.6.0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 54867413e553e455a952a60165cdf071f0f6dde0d442539b7d837d78fb8dee1a
MD5 d8a330a31f440af74dc1a6ba91ab78da
BLAKE2b-256 14240fb0951c03dd0e2e9779a70d57a3d1c2912e6d47786a2ea8ef8db4a1ecab

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: opthash-0.6.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 244.9 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.6.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 b6330f0e78900350a414f05addd3c3332190c28be31035639ecfd5d604586cb5
MD5 c9f4311ff45f3a9dba924504cd1e49fd
BLAKE2b-256 7ffd08731bc8de28023b9e1c611cb8b7590361414f765b792f5b33f884c26992

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-win32.whl.

File metadata

  • Download URL: opthash-0.6.0-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 225.2 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.6.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 172dbdf1116e0318a51643537c6a7e4b1d14aeef34a10c762e44130178849d73
MD5 b94ae5db4df1ef72d644269b5df5a416
BLAKE2b-256 68b3ec0edf2957da57eaaa2451888734d662624d434107f80a9aaeb414e5d761

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8b97cd0f4d8e6d80c10ff6c9bda9c5ccac17b316c2e17d37dd2d506313bcc14a
MD5 d26f8483ae1c3f138ba10f9f278aa526
BLAKE2b-256 b90aa6a8d90651d45adc2254a992512c204b6afa663de1a56d82d8dde4cf070e

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 fdb35fe23596b26eebebc2ac8956336bb8234e48b23398c5a0daa4e9f2e0d068
MD5 5aed8b8637933186827c723737a17043
BLAKE2b-256 e636670a916138d679dd6391f24ff41e8bdffdce044319a1867b706180a9fe34

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 bcf8040a52e5b74d5f8679dde85530bb4846a673c1d13e5427103676d2cfaaf2
MD5 d57c50cc6e6862a74c7e6f0e8e3b73ed
BLAKE2b-256 9c82236ea710cdb1e871e92cace89ff0ddb9cadf6b448f36f2170ea83b93218b

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 36d32d638a43f8552d9044a79935e81f07e58c2a66cad0ee977b40fb333819a8
MD5 46be9cd022d2cf860405e3254e09c745
BLAKE2b-256 fbd0e1a32183987ced83fc781d1bf01d2f771b9f01e9b4bbd93974132e9b66fd

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 94ea89dbca564a7f5a084cd3e236ab19b7e65e3a87b767ae23ab777aa9e624b2
MD5 f52a764555a4c4c769e887ceb60295eb
BLAKE2b-256 06aaa4a814e83fb9e225c5719a647edc1e6283f521d1b0dc9cfdab6e1ee1bcf1

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a1a8d015e1849b835c14091935209c0ad7a008aa7e6dc6cf123ca747ff0a573c
MD5 9f77c22ccf13849f44b08abc38423438
BLAKE2b-256 e48fedaa55cb7d2d7f382e867064d9dd59e193c001572982f2b95fc89c6dda63

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c3fec4f6226c01cfe6479471e348ee65dfcd23319c4e7a79abd3e3cc33a240bc
MD5 6ed9330ce4b476abc1271f6d38dc0ef7
BLAKE2b-256 03dffdf2cb83590b2bc7c084f01e646d0eda5eeb6eb2d84a3bdc71cae172ce13

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c889300ca3f7c50c44b7cdc70301428ffc369a0491443047f98613820baf086e
MD5 3802022915abb41ceec4f978e913d4a8
BLAKE2b-256 594b25ce7495b34b5ac85f423a29c82124b279b25de49d985ac25558aee0499b

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 45425e9ce30c3dc61440c3eb1f58b9f6f6f3d8c6f799fd9b99a3dbd68f8314c8
MD5 36409935c792ab7198a62319ccbc5667
BLAKE2b-256 54d22ba27b86d6f62e4b20c0b85b0f35da818793d13736f92a91d1ac300b9478

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e056b04a47b674bcb9d7ad135751d6e0ea11f41a5b9a3945a72f1861942fe04d
MD5 28db51458cfcd9f1e91f707a1ecbc014
BLAKE2b-256 dae7c213a0ca6f4cf8152e79d7a51a5f3070eabdf223d45e1b797a60bd66818d

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a921951dcb0a2e59194b302f30b465bf7ecca36f3cca7bdb3e057fce6ad65f0f
MD5 2dbb0e1fdbf7ffbfa87255a576e4a411
BLAKE2b-256 ed4f134a68852cef3bf3391f44c6c4a59950206483a8be6900a67dcfdd716e38

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a4b6354c0c30dea588f52541a501d880c72653c03e99cfde0571bbfa2096c039
MD5 f92a8274a6c4b2b094e821d2014f3b75
BLAKE2b-256 b6c65106c93465a81da155388508d20ad16b7d439047b7dd72ed1cd58fba7c35

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-win_arm64.whl.

File metadata

  • Download URL: opthash-0.6.0-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 233.8 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.6.0-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 448bfd31a0dd53313c7d92adbfaa7806a7be7caa1036cfcc80a5567d36e14140
MD5 4cd4ce38a030309e759a368755055fd4
BLAKE2b-256 cfcaac35da068ed849c7337734b76b256cd6238c8e2219156240ee536199f4f6

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: opthash-0.6.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 247.6 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.6.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 39cc822fc36faf9897ecd3829013966893242bd995a77ad885acb05726ced8b6
MD5 90298b8e96fac84e5694a94004ca5b16
BLAKE2b-256 03e23c17e2f5867a0020389c325eca54f7d5c48dcb8008c9013f6f0584ef24f5

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-win32.whl.

File metadata

  • Download URL: opthash-0.6.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 230.2 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.6.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 4336e2c34b799c9a87b192f948ca84542929d332439ecad13e4dbd04f8268642
MD5 df8f0cf943ed82fa6c2737db18472f7a
BLAKE2b-256 34d7d50e1fb02a64421d0901878baaff0acb47c2307d209b8774e9c75a87490d

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7b0aca855aa8c26fdb7b8f33539a479fc49e9cdda9d30017aac3d5235a84d9dd
MD5 d60114b6ff5b89d992849508ed7da87a
BLAKE2b-256 b5407283a9f668e5698ccdd4ec82c776ef9270d1e260fdc0403741c010cdec19

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5296a55be1e46287ed8e28d33a31b04c62b57f1069366410880a9b4570e0ee7f
MD5 2efb15700411a05511e3e2d9b00cf2e1
BLAKE2b-256 bbc4ba8bc49970e389c7dac9210c24f6c3d7c9a57e67d10a93db120c92c4ebde

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 b440260017613e307798587f7232fcae67d86652cf213061b351e6bba338ed39
MD5 a67cdf2f91007675b239e103fd9418e1
BLAKE2b-256 812ce11e36c30557ecb94df918862d947ad73030ba9065463d4f413a0bca9d83

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 23bdc81fd292a0cb117f05175f5128169f8d6ff41e5eee1a1307c9c87475271c
MD5 c79cdb0774efea22d9b4910b240a9ea5
BLAKE2b-256 74e710b899af0d600c9d23836f364f64139adc52888446dbc59dde9816f99ce6

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 269b57630bb8a7007c80b907ddf93cf649c19f4925d9f9fe47822d6dc025e75d
MD5 3ad4b5d336ecfc9afedcf8bc8291ee56
BLAKE2b-256 1a016671fdd56fffba282ed58574cb81a904cd3ea976d55d2d0f5b6033377702

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 35e17265ac5647e733e80778bbea6e4a17688a679427a3a59ee54ecc93eacb60
MD5 10e6272f8e680627377263980086453b
BLAKE2b-256 6cfcf03a2d32037966245927f7ac7c6667ce75f56e57049356b4fdfe24bf29b2

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d0576598b4494f9c27b7539f3c70cb54a644fa4c5e8f769ef6ce65d0f7a3b875
MD5 37b90976f356fc93947876c8d508b3a4
BLAKE2b-256 c00e83cc9dacbba69e2a227defb9c88d7c7a9c114a70a90294aa580efa99d6c5

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 73d11194d230c0bdcfb4d5c2422c83854d4b21dfa4eafbbbfb33bd787283b70f
MD5 069f9f73c5fa5f720c171f71839ec780
BLAKE2b-256 155ab27176e88ad8ecf61079f7e86c5c8ecb14b62d42b4e2ad58d352c0b1725a

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c663ed3bba29eb259440ed8414c4d3b558b634f649a38943298743a3afa8612
MD5 6f900c5d29f0f9ddbe64b2df70c71684
BLAKE2b-256 3560232fb7196c03d0764c82de6ff06f6ba82ec0e6d10117e16a49f2f524d204

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 b11df24834b9a7c801ceb5d194502822d7d662a7d9c3b6565a91750a32e019fa
MD5 70f4c1e09102fa14eb78071f3ec007a2
BLAKE2b-256 71e02d172a6269708f807878368adebce11d3f956a836c741490e7f56122d71b

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0172aad108f78af363f2a294c2558c18e8fc78a38e62fa2f943fcada0db7f382
MD5 4e442f101a26d7252b4a8e4f5550daa8
BLAKE2b-256 e0aeba0915ae05cf00af7bb7ce2b1ea4864c96859ed27ecdec245c8317a3af0a

See more details on using hashes here.

Provenance

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

Publisher: 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.6.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for opthash-0.6.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b23de097b255b190d3a098326631bf0eb5bc007644a3356b26f187a46e3effa8
MD5 a768743a0e32a6a5211b5937ada6c1cb
BLAKE2b-256 0ea7bd86df7809d1568ff666b49e1c6875ff2b8674abd83e8a7adf874217c81f

See more details on using hashes here.

Provenance

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

Publisher: 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