Impact Index for Information Retrieval
A Python/Rust library for efficient sparse retrieval. Built on Rust with PyO3 bindings for high performance.
Supports both neural IR models with floating-point impact scores and traditional BM25 bag-of-words retrieval with performance competitive with Lucene/Pyserini and Terrier.
Features
- BM25 bag-of-words indexing with built-in tokenization, stemming (Snowball), and stop words: Lucene-family lists (17 languages) or Terrier's own, much longer list (English only) — see Stop Words
- Block-Max MaxScore and BMW (Block-Max WAND) search with early termination
- SIMD bitpacking compression (BitPacker4x) with quantized impacts and reusable block buffers
- One-liner compression:
index.compress("/path/to/output") - Document reordering by recursive graph bisection (
index.reorder(...)) for smaller indices and stronger block-max pruning - Posting list splitting by quantile for term impact decomposition
- Index versioning: per-index
manifest.jsonwith format version checks and one-step migration (Index.update(path)) - BMP (Block-Max Pruning) for fast approximate search (SIGIR 2024)
- Document store with zstd compression and key-based retrieval
- Async support for non-blocking search and document retrieval
- Parallel index compression with rayon
- Structured queries: matchop-style
#combine/#syn/#band/#1(phrase)/#uwN(window) operators, evaluated directly by WAND/MaxScore (search_wand_query/search_maxscore_query); the positional ones (#1,#uwN) need an index built withpositions=True
Performance
BM25 on MS MARCO passage (8.8M docs, 6,980 queries, top-100, single-threaded). impact-index is built twice below, each time matching one reference system's own tokenizer/stemmer/stopwords (see BENCHMARKS.md for why, and for a third build aligned with real Terrier 5 instead of PISA). MaxScore is its headline algorithm.
Lucene-aligned (pipeline="pyserini") — vs Pyserini:
| System | ARM q/s | x86 q/s | Index size | MRR@10 |
|---|---|---|---|---|
| impact-index (compressed + reordered, MaxScore) | 295 | 102 ± 0 | 0.65 GB | 0.1859 |
| Pyserini (Lucene) | 213 | 99 ± 1 | 0.59 GB | 0.1855 |
PISA-aligned (pipeline="terrier-pisa") — vs PISA:
| System | x86 q/s | Index size | MRR@10 |
|---|---|---|---|
| impact-index (compressed, MaxScore) | 235 ± 2 | 0.64 GB | 0.1866 |
| PISA (Block-Max WAND) | 215 ± 1 | 0.60 GB | 0.1854 |
- Result overlap: @10=0.985/@100=0.989 vs Pyserini, @10=0.976/@100=0.979 vs PISA.
- Compressed index is lossless (same results as raw) in both configurations.
- q/s is mean ± std over 5 search-only repeats, warm resident index. ARM numbers are from an earlier session (no ARM host this run).
See BENCHMARKS.md for WAND/BMW numbers, full methodology, and a settings ablation (stemmer, tokenizer, stopwords, positions).
Learned sparse — SPLADE-v3 on the same collection (dev/small, single-threaded, x86), retrieving the top-10 or the top-1000. "Exact top-k" is the fraction of the exact top-k retrieved:
| Index / search | Index size | ms/query (top-10) | ms/query (top-1000) | MRR@10 | R@1000 | Exact top-10 | Exact top-1000 |
|---|---|---|---|---|---|---|---|
| Raw, MaxScore (exact) | 17.5 GB | 231 | 445 | 0.4026 | 0.9873 | 100% | 100% |
| Split 0.9 + 16-bit, MaxScore | 4.7 GB | 188 | 530 | 0.4026 | 0.9873 | ≈100%¹ | ≈100%¹ |
BMP (alpha=1) |
13.8 GB | 27 | 381 | 0.4021 | 0.9872 | 97.4% | 97.3% |
BMP (alpha=0.9) |
13.8 GB | 14 | 243 | 0.4027 | 0.9872 | 92.5% | 96.5% |
Seismic (query_cut=5, heap_factor=0.9) |
9.7 GB | 0.9 | 7.3 | 0.4024 | 0.9760 | 98.3% | 84.0% |
Seismic (query_cut=10, heap_factor=0.8) |
9.7 GB | 1.3 | 8.7 | 0.4026 | 0.9823 | 99.3% | 90.5% |
Seismic (query_cut=20, heap_factor=0.6) |
9.7 GB | 4.3 | 15.1 | 0.4027 | 0.9845 | 99.7% | 93.6% |
¹ Not measured directly: exact search over a 16-bit quantized index; its MRR, nDCG and recall match the raw index at every depth.
Seismic is the fastest by far and near-exact for the top-10, but diverges from exact search deeper in the ranking (R@1000 0.976-0.985 against 0.987); BMP keeps ~97% of the exact top-1000 but gets close to exact search in speed at that depth.
See BENCHMARKS.md for all operating points, R@100 and build costs.
Installation
pip install impact-index
Or build from source:
pip install maturin
maturin develop --release
Quick Start: BM25 Search
import impact_index
# Build a BM25 index with stemming and stop words
builder = impact_index.BOWIndexBuilder(
"/path/to/index",
stemmer="porter", # matches Lucene/Pyserini
stop_words=True, # Lucene-compatible English stop words
)
# Index documents
builder.add_text(0, "the quick brown fox jumps over the lazy dog")
builder.add_text(1, "a quick brown cat jumps high")
builder.add_text(2, "the lazy dog sleeps all day")
# Build index (doc metadata and analyzer saved automatically)
index = builder.build(in_memory=True)
# BM25 scoring (doc lengths loaded automatically from index)
scored = index.with_scoring(impact_index.BM25Scoring(k1=0.9, b=0.4))
# Query analysis (analyzer loaded automatically from index)
query = index.analyzer().analyze_query("quick fox")
results = scored.search_maxscore(query, top_k=10)
for doc in results:
print(f"Document {doc.docid}: {doc.score:.4f}")
Structured Queries
search_wand_query/search_maxscore_query also accept Terrier-matchop-style
structured queries, on top of the flat {term_id: weight} form above:
- Each operator runs as a "virtual" posting list under the same WAND/MaxScore pruning as flat queries — no separate exhaustive path.
#1(phrase) and#uwN(window) need positions:BOWIndexBuilder(..., positions=True). Other operators and flat queries pay nothing for it.
| Syntax | Meaning | Needs positions? |
|---|---|---|
#combine(...) / #combine:0=W0:1=W1(...) |
Weighted sum of children's scores | No |
#syn(t1 t2 ...) |
Synonym/OR: term frequencies summed, one virtual term | No |
#band(n1 n2 ...) |
Boolean AND: matches all children, score = sum | No |
#1(t1 t2 ...) |
Exact phrase: adjacent positions | Yes |
#uwN(t1 t2 ...) |
Unordered window of width N tokens |
Yes |
A query is either a matchop string (needs an index built with
BOWIndexBuilder) or an equivalent nested Python structure with term ids:
{"term": ix}/{"term": [ix, weight]}, {"combine": [[w, node], ...]},
{"syn": [ix, ...]}, {"band": [node, ...]}, {"phrase": [ix, ...]},
{"window": {"terms": [ix, ...], "width": N}}.
builder = impact_index.BOWIndexBuilder(
"/path/to/index", stemmer="porter", stop_words=True, positions=True,
)
builder.add_text(0, "the quick brown fox jumps over the lazy dog")
index = builder.build(in_memory=True)
scored = index.with_scoring(impact_index.BM25Scoring())
results = scored.search_wand_query(
"#combine(quick #1(brown fox) #band(lazy dog))", top_k=10
)
for doc in results:
print(f"Document {doc.docid}: {doc.score:.4f}")
Scoring follows Terrier 5. Every operator is scored as one virtual term:
#syn: tf = sum of the children's tfs, df = sum of their dfs.#band: tf = 1, df = sum of the children's dfs.#1/#uwN: tf = number of matches, df = N/100 (Terrier's fixed heuristic).
Nested #combine weights multiply. With BM25Scoring(k3=8) and
pipeline="terrier", stemmer="porter", rankings are identical to
Terrier's. See the guide's "How structured queries are scored" section.
Compression
Compress for smaller index size and block-max pruning:
# Compress (standalone — includes vocab, docmeta, analyzer)
compressed = index.compress("/path/to/compressed")
# Search the compressed index (same API)
scored = compressed.with_scoring(impact_index.BM25Scoring())
results = scored.search_maxscore(query, top_k=10)
The default settings (block_size=128, nbits=0) are optimized:
- block_size=128 aligns with SIMD registers and enables block-max pruning
- nbits=0 lossless integer bitpacking for TF counts (~2-3 bits/value). Use
nbits=8for neural IR with float impacts
Document Reordering
Renumber documents by recursive graph bisection (BP) so similar documents get nearby ids, for a smaller index and stronger block-max pruning:
# From a raw index: reorder + compress in one step
reordered = index.reorder("/path/to/reordered")
# Fully transparent: search results carry the ORIGINAL document ids
scored = reordered.with_scoring(impact_index.BM25Scoring())
results = scored.search_maxscore(query, top_k=10)
for doc in results:
print(f"Document {doc.docid}: {doc.score:.4f}")
The internal renumbering is invisible to callers; reorder_map() exposes
the raw permutation for advanced uses.
Index Versioning & Migration
Every index directory carries a manifest.json with its format version.
Loading an index built by an older version raises an actionable error;
migrate with:
impact_index.Index.update("/path/to/index") # in place
impact_index.Index.update("/path/to/index", "/dest") # or to a copy
Indices without a manifest (built before versioning existed) load normally and are stamped on first load.
Neural IR (Impact Scores)
import numpy as np
import impact_index
# Build an index from pre-computed impact scores
builder = impact_index.IndexBuilder("/path/to/index")
builder.add(0, np.array([1, 5, 10], dtype=np.uintp),
np.array([0.5, 1.2, 0.8], dtype=np.float32))
index = builder.build(in_memory=True)
# Search
results = index.search_maxscore({5: 1.0, 10: 0.5}, top_k=10)
Approximate search with Seismic
Seismic (SIGIR 2024) gives fast
approximate top-k over learned impacts (dot product only: not for
BM25/LM or structured queries). It is included in the Python package
(cargo feature seismic, which needs the nightly pinned in
rust-toolchain.toml).
index.to_seismic("/path/to/seismic") # defaults tuned for SPLADE / MS MARCO
searcher = impact_index.SeismicSearcher("/path/to/seismic")
results = searcher.search({5: 1.0, 10: 0.5}, top_k=10, query_cut=10, heap_factor=0.7)
query_cut (terms traversed) and heap_factor (block-skipping
aggressiveness) trade accuracy for speed. A Seismic directory cannot be
migrated across Seismic versions: rebuild it with to_seismic.
See Performance for SPLADE-v3 speed and accuracy against exact search and BMP.
Stop Words
Two built-in stop word families, selectable independently of stemmer/language:
"lucene"(default): short, per-language lists matching Lucene's language analyzers. 17 languages: arabic, danish, dutch, english, finnish, french, german, greek, hungarian, italian, norwegian, portuguese, romanian, russian, spanish, swedish, turkish."terrier": Terrier's own, much longer list (org.terrier.terms.Stopwords, 733 words for English) — what PISA and Terrier 5 use by default. English only — other languages raise an error rather than silently substituting something else.
# Get stop words for any supported language/family
words = impact_index.get_stop_words("english") # 33 words (Lucene, default)
words = impact_index.get_stop_words("french") # 154 words (Lucene)
words = impact_index.get_stop_words("german") # 231 words (Lucene)
words = impact_index.get_stop_words("english", "terrier") # 733 words (Terrier)
BOWIndexBuilder's stop_words argument accepts the same families by name:
builder = impact_index.BOWIndexBuilder(
"/path/to/index", stemmer="snowball", language="english",
stop_words="terrier", # or "lucene", True (alias for "lucene"), a list, or None
)
stop_words=Trueis a permanent alias forstop_words="lucene"— unaffected by the"terrier"addition.- Whichever family (or custom list) was used is saved with the index and restored on reload. Indices built before the family selector existed reload as Lucene, matching what
stop_words=Truemeant at the time.
Documentation
Full documentation including guides on compression, BMP search, and the document store:
https://experimaestro-ir-rust.readthedocs.io/en/latest/index.html
Release files for impact-index 1.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| impact_index-1.7.0.tar.gz | 1.4 MB | Details |
Built distributions (wheels)
Total release size: 52.8 MB
Release files / impact_index-1.7.0.tar.gz
| Download URL | impact_index-1.7.0.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8f8e5a411a8b7272ef69a2d768ab13e6ed9c13a227840e52f5b20a0197e83a0
|
|
BLAKE2b-256 checksum How to use checksums |
e19599af4ee233d94f6f39c1d63bb1e0358486805bbb8dca539c7f5ef7ebfe09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp314-cp314-win_amd64.whl
| Download URL | impact_index-1.7.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f7f4023fabe77c9bb62722c38c4ce2a0c85f75c2aeba6ac3633c6f79fc7567b1
|
|
BLAKE2b-256 checksum How to use checksums |
af8a8d7641b870bf777d83360923ad9257f6c8e8df868b5f1bbd423e26e11b7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | impact_index-1.7.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7f1d1793edf13a34440f0381bc0ae1365944a7a46f31b3446d470b386282f998
|
|
BLAKE2b-256 checksum How to use checksums |
d02b0b9b270e36bd26359f0edc4555706c01b6e53eae9f4f48088aa8be7ea705
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | impact_index-1.7.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c91cad2c9bbac641278f200fa5f2d46c3023bb4d33ac300261acab75c5806fc2
|
|
BLAKE2b-256 checksum How to use checksums |
7f02efbcb02e8b7f8dcebd16d2049cd531d5a37d96f0308d54fa59660d03288f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | impact_index-1.7.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
969bcf88de3c275289edb03234a9534a3770a4d03c9cc2c36c76284d439465bb
|
|
BLAKE2b-256 checksum How to use checksums |
74cdc31f331cb9e42564f7ed934574ba30659d3e77ff2612714c34d7f89348c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp313-cp313-win_amd64.whl
| Download URL | impact_index-1.7.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f158d2902d14b6578df2104683ced8771ab1a14cf4ea31e11fb480f44f9e67ee
|
|
BLAKE2b-256 checksum How to use checksums |
3d8ebbafcce7d5a01635eccf5a2896bbb03e3c1fda7d37427f6c444219303b53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | impact_index-1.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c029cedaa283dda003234b6fbf82f43fe7dc735369ef8859bca8280d21bb1adf
|
|
BLAKE2b-256 checksum How to use checksums |
d51c12e94a73683200810324bc3fbaf6aa8bce497235694784744579144fe1e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | impact_index-1.7.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3a5af18f92bdf27324cce51def65ad52c8f677933134328903a9ac1dc7f9c45e
|
|
BLAKE2b-256 checksum How to use checksums |
e5ef3843b97fd2ac789cce888403b4c000755a9b4988e3620c18ab79959dc9cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | impact_index-1.7.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
e90fe3cc455e51d84526f2fad82ea30477ffc424fc13abf5bdff0c022278124e
|
|
BLAKE2b-256 checksum How to use checksums |
e6d2aac32d5929619902f70005a78d227d9e9db4266a36f6000185a096b162dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp312-cp312-win_amd64.whl
| Download URL | impact_index-1.7.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f126783d04645b269c6dbbeec8903e655dc2a6ace88e7f70142d5cc16d3939da
|
|
BLAKE2b-256 checksum How to use checksums |
be0bad13f4b5b9738be0bf442113ec34e2ba61c1f8a6ee54d307f1375236768a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | impact_index-1.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
6f3dc7c0afe6c07a939e6b15a79914b53789a676be61107012eedf0a1a64d9b5
|
|
BLAKE2b-256 checksum How to use checksums |
aaa4bddc3506ec68864dc175441bfc203aa4734d007f8d65f0d32ab32eec3522
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | impact_index-1.7.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
87ed501c1d9c8a758a98fdc19777c1cf3b72f9c83ab02981635829c93b2da14a
|
|
BLAKE2b-256 checksum How to use checksums |
dccd50f6abe9dbcae2dbdb09265c0d74e63a24e40c54d254d52bbc444a88016c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | impact_index-1.7.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
d6d5fec8ed9dd41cd12fe85906d5da594c48f10287e5ef4c5b6d02bab83ca5de
|
|
BLAKE2b-256 checksum How to use checksums |
8f7fdab1ab7a10c92abae4527dc873120682ee54548948801266a26c1be7a0f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp311-cp311-win_amd64.whl
| Download URL | impact_index-1.7.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
edfb16c9c38d2517ff3697880802f3e4dca4604ecca3b20c8df5191bff6fbc96
|
|
BLAKE2b-256 checksum How to use checksums |
94672868bd9b20f9bfea749c9e9719f086c0c5aa86ca3a1e6e5681c32849467a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | impact_index-1.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
538dadfe324804ad42048df1714dce9a9c87ac02cae950e2765a0de7557f0fbc
|
|
BLAKE2b-256 checksum How to use checksums |
023eaef9a74ee48e470303ed73c9652386a6a82e08b86d6c0b2e2c345eeb4eee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | impact_index-1.7.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6683b05f1c8186b618c61f3930eb824fec33f2b43f6f231933626bd4b9996426
|
|
BLAKE2b-256 checksum How to use checksums |
b5732aceb03c7ac4daf08805cc9cd69fa648c899cc1d97eb4900d41f6f532143
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | impact_index-1.7.0-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
2118414e1100512ece3c66ef1ab9cbdfcffc179525a740204565fd351fc1f716
|
|
BLAKE2b-256 checksum How to use checksums |
3500724cc834d532f1e0d4835ee17b700629ad8df0032d23b7faab38a2aa3657
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp310-cp310-win_amd64.whl
| Download URL | impact_index-1.7.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
53dd11288701752d5ea70f3476f3da08585fc9cc5e386676abeecede44b0ae02
|
|
BLAKE2b-256 checksum How to use checksums |
8fd0227a377113bc643cfabf94a66d3d2c6468996e6238a34f20456d7e3a0d5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | impact_index-1.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f0e266b810e653a3b590190e3c04938d8a5240b98cfffb008b146612a3e841d9
|
|
BLAKE2b-256 checksum How to use checksums |
ca3b4f9006ed0b05662e01fcdef6b1f6a320eab8567565f5eef6197ea64162a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | impact_index-1.7.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
187424810ff8433f0b7a58998497b3493671629fd53ba94a45041236568da0f3
|
|
BLAKE2b-256 checksum How to use checksums |
064ea6ea7ced6b9773804526c82bc5ce4161b78a41472f5a6bc48281c6d01c66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / impact_index-1.7.0-cp310-cp310-macosx_10_12_x86_64.whl
| Download URL | impact_index-1.7.0-cp310-cp310-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.10 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
9538663d6d969ad49f8f9cfc5afa692caf5cfd3985df3e8409cf02a8d0a79cca
|
|
BLAKE2b-256 checksum How to use checksums |
228e6d04fbc28deb35b8960835cd16c0afd40c64e95a4fa22027ca20df22b7ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log