Skip to main content

Impact Index for Information Retrieval

📖 Documentation: https://impact-index.readthedocs.io/en/latest/

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. For learned sparse models, it also integrates two approximate search backends: BMP (Block-Max Pruning) and Seismic.

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.json with format version checks and one-step migration (Index.update(path))
  • BMP (Block-Max Pruning) for fast approximate search (SIGIR 2024)
  • Seismic for very fast approximate search over learned impacts (SIGIR 2024) — see Approximate search with Seismic
  • 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 with positions=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
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=8 for 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=True is a permanent alias for stop_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=True meant at the time.

Documentation

Full documentation including guides on compression, BMP search, and the document store:

https://impact-index.readthedocs.io/en/latest/index.html

Metadata

Release files for impact-index 1.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for impact-index 1.7.1
File Size Uploaded
impact_index-1.7.1.tar.gz 1.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for impact-index 1.7.1
File
impact_index-1.7.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
impact_index-1.7.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
impact_index-1.7.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
impact_index-1.7.1-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
impact_index-1.7.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
impact_index-1.7.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
impact_index-1.7.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
impact_index-1.7.1-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
impact_index-1.7.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
impact_index-1.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
impact_index-1.7.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
impact_index-1.7.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
impact_index-1.7.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
impact_index-1.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
impact_index-1.7.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
impact_index-1.7.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
impact_index-1.7.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
impact_index-1.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
impact_index-1.7.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
impact_index-1.7.1-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 52.8 MB

Release files / impact_index-1.7.1.tar.gz

Download URL impact_index-1.7.1.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
9f095ab2424f04029965dcd1425555d9c279ba8a2ed17aab0957cd9fac4351ea
BLAKE2b-256 checksum
How to use checksums
30d8366b27fe8d17f0f1525bf1a922dbf3817fcd66aabf6aa4796afdb9f51614
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp314-cp314-win_amd64.whl

Download URL impact_index-1.7.1-cp314-cp314-win_amd64.whl
Size 2.4 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
b57d5dca1a6b41f6c0c429f8db0d44ceaffed3c33f54af489e0a46424f73493d
BLAKE2b-256 checksum
How to use checksums
475c351ceadf966670773bb4801cbae6b8de576dba129a2927c286170ee6ec05
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL impact_index-1.7.1-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
3f33eefe297e046950572f9e4422ae3c58a5f565c13702e34746f9287d9c1a31
BLAKE2b-256 checksum
How to use checksums
78c5180176f6157c51125354ee61aa6474719b947b1756fd6c9f2f3e32203f5f
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL impact_index-1.7.1-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
a3a83ca6fc8dbfdc30689c04c416eb58c29754d43ce59f77b748e11eaef8ae48
BLAKE2b-256 checksum
How to use checksums
f7b3ef8eb1997bcb5d4bc1ee7cddada8e90c96b7d7dd1b18ba259033dabc65f9
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp314-cp314-macosx_10_12_x86_64.whl

Download URL impact_index-1.7.1-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
6349be72903846ad596b6287fcd3887a23f728f7b806a4e032aa924de422f782
BLAKE2b-256 checksum
How to use checksums
d92fc851e2d7d17ddd8ae0c9c47960d77694fe473d12ef43fda0dc8fbf2b635b
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp313-cp313-win_amd64.whl

Download URL impact_index-1.7.1-cp313-cp313-win_amd64.whl
Size 2.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
719b80142a886b3c9632c532784aae81d725e117d02ad2b478f28e365b77b53e
BLAKE2b-256 checksum
How to use checksums
2b87fa426fa497306a8d1a6a38c848693840d115e2ce3490e9d507daf9d2953d
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL impact_index-1.7.1-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
7957873aede7855473596f6d5045c848058a718a259b87e226aee3204a5efdb7
BLAKE2b-256 checksum
How to use checksums
f9cfd5c3ab83791c84294eb65093f72cf5ded1aaf16ce724e4119b7b9c9078e2
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL impact_index-1.7.1-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
74aef38f0f81c6f269ed80a1c82a9ec77f5f7948e7d1276ce6d96223b95c3474
BLAKE2b-256 checksum
How to use checksums
ac1da06a30dd823a5f35625d803fbdca8aa43cc700774ec9ac6ea5f8b7c28373
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp313-cp313-macosx_10_12_x86_64.whl

Download URL impact_index-1.7.1-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
034f82a00b9d60802a56eb0c527f4c5eb5e7b1f70d8b3aeb4d23a95c8acb5526
BLAKE2b-256 checksum
How to use checksums
faf117bbc5d0bfca11b6402e4d3c9d00feb88625639fef4d0c4c3dbf7e9d000b
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp312-cp312-win_amd64.whl

Download URL impact_index-1.7.1-cp312-cp312-win_amd64.whl
Size 2.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
630ffa4f2b55a65d9fe509b12d3d0401376ba1179caedbd412a8b3d3256bce53
BLAKE2b-256 checksum
How to use checksums
7510525e2bf9fe0940b9e5e64ea5b51ed760c97ed3cf644fb839069b2190ea96
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL impact_index-1.7.1-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
a9f7a7412b6bc1fb1c86f0b0a4ce327a0e461e22b731cf73cfbfc196e3e7400b
BLAKE2b-256 checksum
How to use checksums
71377c47c95c6dcee66ae855e583ef3fa902d21abc1d9c32218cf3e141fdced3
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL impact_index-1.7.1-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
e101c75d81b18f57c529548f1fd1166b58076d14857d5d2a8eff8082e3e48552
BLAKE2b-256 checksum
How to use checksums
d37f639562702fd9e0b17c3d2542c624d8b4c487443c68b80a826af0077221e1
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp312-cp312-macosx_10_12_x86_64.whl

Download URL impact_index-1.7.1-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
1f55f49f25b3f5bc901943dae31d881d5cb6809b402398f3ca460467396f4221
BLAKE2b-256 checksum
How to use checksums
1fc2f9d4f0703dd500bfe024299545f39f5d24bd42af91b6ee800b9c4ad72b8a
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp311-cp311-win_amd64.whl

Download URL impact_index-1.7.1-cp311-cp311-win_amd64.whl
Size 2.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
81c19efb75e55599bbee32e967753218e838219547375b8e06a4ca7143375e9e
BLAKE2b-256 checksum
How to use checksums
5ff3f66f26d8d24a72f4938aa39865e3d3132fd1a6c2af6c623cd9fda2b23552
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL impact_index-1.7.1-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
44424947f7287b4a74aa6eb61dc8b92ab9489afff27f9bf8a0f6b5b3e58f276a
BLAKE2b-256 checksum
How to use checksums
9dc123d0cebf9cfef7e944ab55fb4757d62ff9186457f6c99d61f2c13a613700
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL impact_index-1.7.1-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
cf0c15ae6a5b424c3017168aa7f3342fa56f3bbd4ec8a6df85d0d9a1859e1996
BLAKE2b-256 checksum
How to use checksums
19d8cb126d788a3c71ce4fab8e8045dee3eecb311b1ad0e6a7303fdeaac4edec
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp311-cp311-macosx_10_12_x86_64.whl

Download URL impact_index-1.7.1-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
d41a8bcf33e99ffb25578de49d8c48e20d73a10c6a337fcfa2e116bd89b674ab
BLAKE2b-256 checksum
How to use checksums
7a0060948bf4a8e954444089ff0ab7e9fc44eb1ddebbfeabcd4c8bb6f19e43fb
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp310-cp310-win_amd64.whl

Download URL impact_index-1.7.1-cp310-cp310-win_amd64.whl
Size 2.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
0d734d5de4f422c29e45a3ac650fff6b92d0467670ebd1e053b9c6e839cfda9b
BLAKE2b-256 checksum
How to use checksums
13c30445978d7048ede0f16052eaa83b6cc7d404459a94e628b5ca17c055f921
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL impact_index-1.7.1-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
3c4139126157b2c55880a82365a19ebc98dab8cfbf403b4e5ff7669e07f3baed
BLAKE2b-256 checksum
How to use checksums
e7511072009d8d2ef35ac516aedcd0c69c6e203e7a9ecacca36c9bc4e594bab2
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL impact_index-1.7.1-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
e68aa175e7f6b8012cc2b8a4289e801df4a701ea55bf4dbf3d321b508b84443c
BLAKE2b-256 checksum
How to use checksums
7fdd93894d5fb02cd4e47047012c101cb134c539c9c34e1e6afe73aeca5658ea
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 29, 2026.

Transparency log

Release files / impact_index-1.7.1-cp310-cp310-macosx_10_12_x86_64.whl

Download URL impact_index-1.7.1-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
b17673c50bf40230401935a23d1bc239cd1c6234854ef4f3afc96cabeab2bca4
BLAKE2b-256 checksum
How to use checksums
6ebeba0289b8fdc7756eb7cc503f8e6050ec1079e0a16950d681fe21498c44d6
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 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.7.1 This release

21 release files

1.7.0

21 release files

1.6.0

21 release files

1.5.0

21 release files

1.3.1

21 release files

1.3.0

21 release files

1.2.1

21 release files

1.2.0

21 release files

1.1.0

7 release files

1.0.0

5 release files

0.30.1

5 release files

0.27.4

6 release files

0.27.3

5 release files

0.27.2

5 release files

0.26.2

5 release files

0.22.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page