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 1.

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 2 3 4. Per-level salt re-randomization 5 decorrelates probe paths across levels. The default BuildHasher is foldhash 6.

  • 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 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_ptr

  Occupancy is derived from SIMD scans of the control bytes.


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, salt,
               bucket_count_mask

  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

  1. 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.

  2. 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.

  3. 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.

  4. 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).

  5. 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.

  6. 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.7.0.tar.gz (205.2 kB view details)

Uploaded Source

Built Distributions

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

opthash-0.7.0-cp314-cp314t-win_arm64.whl (233.9 kB view details)

Uploaded CPython 3.14tWindows ARM64

opthash-0.7.0-cp314-cp314t-win_amd64.whl (247.4 kB view details)

Uploaded CPython 3.14tWindows x86-64

opthash-0.7.0-cp314-cp314t-win32.whl (226.7 kB view details)

Uploaded CPython 3.14tWindows x86

opthash-0.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl (602.3 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

opthash-0.7.0-cp314-cp314t-musllinux_1_2_i686.whl (634.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

opthash-0.7.0-cp314-cp314t-musllinux_1_2_armv7l.whl (670.2 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

opthash-0.7.0-cp314-cp314t-musllinux_1_2_aarch64.whl (563.2 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

opthash-0.7.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (397.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

opthash-0.7.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (425.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

opthash-0.7.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (515.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

opthash-0.7.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (395.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

opthash-0.7.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (387.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

opthash-0.7.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (419.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.5+ i686

opthash-0.7.0-cp314-cp314t-macosx_11_0_arm64.whl (363.6 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

opthash-0.7.0-cp314-cp314t-macosx_10_12_x86_64.whl (375.4 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

opthash-0.7.0-cp310-abi3-win_arm64.whl (237.5 kB view details)

Uploaded CPython 3.10+Windows ARM64

opthash-0.7.0-cp310-abi3-win_amd64.whl (251.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

opthash-0.7.0-cp310-abi3-win32.whl (231.4 kB view details)

Uploaded CPython 3.10+Windows x86

opthash-0.7.0-cp310-abi3-musllinux_1_2_x86_64.whl (606.0 kB view details)

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

opthash-0.7.0-cp310-abi3-musllinux_1_2_i686.whl (639.7 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

opthash-0.7.0-cp310-abi3-musllinux_1_2_armv7l.whl (673.4 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

opthash-0.7.0-cp310-abi3-musllinux_1_2_aarch64.whl (568.5 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

opthash-0.7.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (400.8 kB view details)

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

opthash-0.7.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (429.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

opthash-0.7.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (518.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

opthash-0.7.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (397.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

opthash-0.7.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (392.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

opthash-0.7.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (425.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

opthash-0.7.0-cp310-abi3-macosx_11_0_arm64.whl (363.5 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

opthash-0.7.0-cp310-abi3-macosx_10_12_x86_64.whl (376.1 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for opthash-0.7.0.tar.gz
Algorithm Hash digest
SHA256 30d5566fe7dc44de982ebef008a6313a929df765f2a27d64750c6543e8364325
MD5 6de0a74bfb00d741ea8de4c32e7a0bde
BLAKE2b-256 6fbdc7fe3cdd6e3ed0aeedde2ee17374028f8260d00e0cbc0ccb73ae53d03179

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: opthash-0.7.0-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 233.9 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.7.0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 3386eacaae781aed5169704d5135bdae9d7c7d81f255acb4af6640724031187e
MD5 28818eaadc705d43fdf115d1630dc07b
BLAKE2b-256 38f26d1a5034629eb8e2ef0f673aee434e7e2ca1b1fe4bbb6686096291478a49

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 17d854b002ca2c23459a4473c26baec047d2aa9bf0bccc554730ef4500ed3ee6
MD5 51501bea6eb3a6f3a6f0bcb5ad05cf7a
BLAKE2b-256 3441e92ab7599f09a42b5bbf1ac4f5579a18532cb013aec94a1db5ceed873bb0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: opthash-0.7.0-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 226.7 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.7.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 2b990cd8f58138153073a1ea445f2d1c008de89cb1aef6df19291c4d528dabca
MD5 a0a199e137b9958955626e91ad2bb08b
BLAKE2b-256 6a3dc1316b1315d54355f4a22ad8d422d604bdb2fb2259bca0305e22bafe4fe1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fc4576e0ea305247128dc286902b6df021c3ac1146388790101f33f0571a4359
MD5 ab765f624e80f80f87b8e6d2366b9158
BLAKE2b-256 6f62cc66957d7ebe4ddb466e6fcb0ffe7b7dc472a12768319ed7f919a8dfbf6d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 25cae6710d0700b6d3b6cb4f13c2a78966a1efb2dd503396cc7e2ed27d983a98
MD5 615be20619ca9d2657d3977cbaddd7cd
BLAKE2b-256 b249c4c4370a0d06ba0fbf751500e37155c0816a0604b64a8a277e70843c86fa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 03f5258ba68220bf2d87056326b3a1d7fcfccadc161320f6e457e149dc50b613
MD5 7f94c30d4a93216c5c072d7f72e09026
BLAKE2b-256 969d332c10a207e6f62b5bf172e9676e5b5a54c143d09db41ce425b66dc274cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2901373b572639d2878dd86a4be75b611a1ada05675f126dffb11ce08500cb92
MD5 0fc8aad695b63ac7401125a3e9be354a
BLAKE2b-256 9ba4b5f4ef51a81bc64a15fee965ecff976169b17a529161531a0aef2bd963ac

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e03de09dbcccd8e68584031f7a1d538d820b008e88ff8ab637c35fc6b740bc38
MD5 878f8c02189590a1073f2322b85b3e8f
BLAKE2b-256 ebbbbaff0ce9f33c6cdbfbe3461e1a8d97b763415acd50b88872e0e37e7bfa86

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5b4c7c51f2972ff8ed15e690344aacf77cfc994a44f0a66682254d67798cb3e2
MD5 0a35a322d682d2e744184acfd881dff5
BLAKE2b-256 dbbad65f33a6a2fe2d43aa65cd55feef0f58d07f97888cf273416404fb39fd5b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 97d67fe86c0c93b6a2d714ff1d9dc9caba8bf6dc4939d3695c43433ca6c27d24
MD5 6f99c361f9b0d1d7aaf2e8ec0384e2ee
BLAKE2b-256 9a94db3462952262fe6cb5a850a356de7cdb0ef41eb74245e138b18609d038bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d5d7a6c07b6d594114a1e882a44cfa3c507b485b20f42038e32d135d44105492
MD5 18ce7f001d4fdaf1a69cb9379f860878
BLAKE2b-256 9536133aa48c02e4bb5ed3b8f228a23ce95f923f78ec0e110db4342ea276cd38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 84ac6e0eca66369677c0ea6309359cd42d9d47b4565d5b68340cbe675eb25cfe
MD5 f8dab803e6ad63d88c38e83936f5c471
BLAKE2b-256 d8e755c86ed57fd98572b2406a27abd3bfc083b848d6b30f9e21c3b43114400e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 909f415575d8c34c8bced60edbc51bd945ca6dbd10ba80e15e54df481f14d11a
MD5 fcab1128b98b90b70f08c6794c636e10
BLAKE2b-256 c2ffa9e1400c51e158d7923ca2123bc0eb5d2d894743403867d8984d7a27e769

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 163ceca4278732fd905fe85af28235394665b9db22ba9f8ba9b2e814df770992
MD5 10e8ec466ec3a9a88ec597cfdc5067bf
BLAKE2b-256 cd86b3dbdd5b856b0850dc1c85f09ab780fe6833b19f2376d5bcb7163ace7b12

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c08376de5714cf358a06027b64147acd81531f56218f335029e104bd2e229a6d
MD5 2963f6f528985cf305f42a0a3f71626c
BLAKE2b-256 dcb4b23208248f0cdcdc84d3fbab7fdb0d1d7090f6ff62f4f717d5fbd48060a8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: opthash-0.7.0-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 237.5 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.7.0-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 91faa32fc9569deeda4349ac3ae4c7b9046988090c4b7ff6005e410ff161ca60
MD5 755cb147b527429824272fb7b17da9f8
BLAKE2b-256 c4b1f76bffae58b5c43afac151663a70b338498c9c8452f3eb65781c2eb078e7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: opthash-0.7.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 251.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.7.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a33726ae29aac98dedc7c2ba38010fbafadc1c1a036497a4fe441bbd92bc9b57
MD5 62f63022be5b02bcf86261f992812da7
BLAKE2b-256 53c7e84b4370d7daad451fe934867e9cf13cff5a9caa624a18b1dd4e345c4130

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: opthash-0.7.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 231.4 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.7.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 a6f36331c721c56f29da5f168e2945a6bec3708da040629d3379f4e8960a737b
MD5 d668d86f6d9957da3d67cb2179d6724e
BLAKE2b-256 fe989018ece831c69ea837f9aa3c1d43d7590f31c97809cd296224dd02e7b551

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7b0c51bd86df0c17fe70c76e77d28cacd969589b5026fbe703086f18babb2733
MD5 211833a32f3fb3a6f8917e503bdbcc45
BLAKE2b-256 67f4e680635307c85b1534248a4d99618b7868ff2e5b62b649c99c92a8315f8f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 4c1e40a4e21e991ad3b3fc14005d2cddcfebd2127dda9645ae3fc397689bea56
MD5 acca57c57599bbcf6c93c7e387b4d0af
BLAKE2b-256 bc378bf698c535e5aab635e9c85f15635d588f022ffbddab453bf6ca378edd0a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 82830daf9786a6b3043230721d9aadee91df9f9eb1b4ba33030ad24a001b9a2e
MD5 8d9a6b906e5894b03b3d1912752f8fb4
BLAKE2b-256 c2064de589392f53a96717f7ce7dd25bd0df51f8051e627c2e12a5c3102ed9fe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1bd8017cc1ed4845bac83fc83944accbe4373d70af9e3446f62e3e99a8c70e7c
MD5 bbc3b437ce758dd3d20f481441538d7e
BLAKE2b-256 9c585909ca9f4abd637f462a7be4252594f94d85f4d3285f15e16765ae1e0c03

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f30a2babe4a1b3edfeecf657244c2770c62f6b5a12b66c27e3826744e95ec0d
MD5 906ab455897fbaa8933da195f872d199
BLAKE2b-256 a0695a0ad78a50dffbf87df7799c62e6d2e356f3da12413d32870a0d01a81be5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c766913ceb9be4473bc776ff1acbea36280e5a7c32ac9ba343563fbe86837a8a
MD5 bf25f7aa23edab24c7b22bea392e9f91
BLAKE2b-256 887a3d12b4aedf1ba356f1d15ab098503fb0f8864a48a6e15a1326526c682352

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b811f95422433f9e0144057484c69b343357643aa6e235fb5512f512d0b0b6f4
MD5 16d126e9cf3508fe05ac43b037e5a747
BLAKE2b-256 f60993d24b14ea4960cd07249cfc9c022849cdc090d04b94b03e8f52439ecfe3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 351ae623f572681c0e1df26c77b40a91994b537771df3966995bbd943bdb44d3
MD5 6bf2c420343aced1a29bf075d402ff71
BLAKE2b-256 a7d4508cbfac3a159327de5ee9187afb9c07b7d459acf0489509937b94f88a67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 088658f1be299ecabfb1d019e850879d5c0aa847826ebf64b21247295b54997a
MD5 1c5cfab010779157d241492a7328eab1
BLAKE2b-256 4e7c85da18847c6b2f7ab8e404a61ec8d4ff7ad1a2a5d031c908f748bc13be0c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 fb8e273bc0ded56957936563aefb5cc93640e354093b569ef765aca449ef70d5
MD5 78193c01a13a5847ee49f2ba5b796d49
BLAKE2b-256 f022597e6c2935278f7ec0ad0fc6412cdb54b1f716cbfb36298502ac8e1b041c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbffddef10d3ab7e677473a99ce58d08aa95395294375c59ae1e1d91f37c235c
MD5 88d5d24f052ee8dc9e2aee98efed2a86
BLAKE2b-256 54ec8b6c5d2c706cd85d9b14b3ddb2a7a705c6c86794b4de085072edb8fc3739

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for opthash-0.7.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7473f9749c73f9d3e477975332ec395c895a673a5452b09202409fd0de55a8ce
MD5 f64a045a020bf6056e1cf2b9be1e74af
BLAKE2b-256 639a5d2ce82b7beeb73b3ca3a2d9aa8eb406f93b1f2727122c3616b88bf96889

See more details on using hashes here.

Provenance

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