Skip to main content

Blazing-fast FP-Growth and Association Rules — pure Rust via PyO3

Project description

rusket logo

Blazing-fast Market Basket Analysis and Recommender Engines (ALS, BPR, FP-Growth, PrefixSpan) for Python, powered by Rust.

PyPI Python Rust License Docs


rusket is a modern library for Market Basket Analysis and Recommender Engines. Arrow-backed, fully compatible with Spark, and written entirely in Rust (via PyO3), it delivers 2–15× speed-ups and dramatically lower memory usage compared to traditional Python implementations.

It features Alternating Least Squares (ALS) and Bayesian Personalized Ranking (BPR) for collaborative filtering, as well as FP-Growth (parallel via Rayon), Eclat (vertical bitset mining), and PrefixSpan (sequential pattern mining). It serves as a drop-in replacement for mlxtend's APIs, natively supporting Pandas (including Arrow backend), Polars, and sparse DataFrames out of the box.


✨ Highlights

rusket mlxtend
Core language Rust (PyO3) Pure Python
Algorithms ALS, BPR, PrefixSpan, FP-Growth, Eclat FP-Growth only
Recommender API ✅ Hybrid Engine + i2i Similarity
Graph & Embeddings ✅ NetworkX Export, Vector DB Export
Pandas dense input ✅ C-contiguous np.uint8
Pandas Arrow backend ✅ Arrow zero-copy (pandas 2.0+) ❌ Not supported
Pandas sparse input ✅ Zero-copy CSR → Rust ❌ Densifies first
Polars input ✅ Arrow zero-copy ❌ Not supported
Parallel mining ✅ Rayon work-stealing ❌ Single-threaded
Memory Low (native Rust buffers) High (Python objects)
API compatibility ✅ Drop-in replacement
Metrics 12 built-in metrics 9

📦 Installation

pip install rusket
# or with uv:
uv add rusket

Optional extras:

# Polars support
pip install "rusket[polars]"

# Pandas/NumPy support (usually already installed)
pip install "rusket[pandas]"

🚀 Quick Start

Basic — Pandas

import pandas as pd
from rusket import mine, association_rules

# One-hot encoded boolean DataFrame
data = {
    "bread":  [1, 1, 0, 1, 1],
    "butter": [1, 0, 1, 1, 0],
    "milk":   [1, 1, 1, 0, 1],
    "eggs":   [0, 1, 1, 0, 1],
    "cheese": [0, 0, 1, 0, 0],
}
df = pd.DataFrame(data).astype(bool)

# 1. Mine frequent itemsets
# method="auto" automatically selects FP-Growth or Eclat based on dataset density
freq = mine(df, min_support=0.4, use_colnames=True)

# 2. Generate association rules
rules = association_rules(
    freq,
    num_itemsets=len(df),
    metric="confidence",
    min_threshold=0.6,
)

print(rules[["antecedents", "consequents", "support", "confidence", "lift"]]
      .sort_values("lift", ascending=False))

🛒 Transaction Data (Long Format)

Real-world data comes as (transaction_id, item) rows — not one-hot matrices. Use the built-in helpers to convert:

import pandas as pd
from rusket import from_transactions, mine

# Long-format transactional data
df = pd.DataFrame({
    "order_id": [1, 1, 1, 2, 2, 3],
    "item":     [3, 4, 5, 3, 5, 8],
})

# Convert to one-hot boolean matrix
ohe = from_transactions(df)

# Mine!
freq = mine(ohe, min_support=0.3, use_colnames=True)
print(freq)

Or use the explicit helpers for type clarity:

from rusket import from_pandas, from_polars

ohe = from_pandas(df)                      # Pandas DataFrame
ohe = from_polars(pl_df)                   # Polars DataFrame
ohe = from_transactions([[3, 4], [3, 5]])  # list of lists

Spark is also supported: from_spark(spark_df) calls .toPandas() internally.


⚡ Eclat — Vertical Mining

eclat uses vertical bitset representation + hardware popcnt for fast support counting. Ideal for sparse retail basket data.

import pandas as pd
from rusket import eclat, association_rules

df = pd.DataFrame({
    "bread":  [True, True, False, True, True],
    "butter": [True, False, True, True, False],
    "milk":   [True, True, True, False, True],
    "eggs":   [False, True, True, False, True],
})

# Eclat — same API as fpgrowth
freq = eclat(df, min_support=0.4, use_colnames=True)
rules = association_rules(freq, num_itemsets=len(df), min_threshold=0.6)
print(rules)

When to use which?

You almost always want to use rusket.mine(method="auto"). This evaluates the density of your dataset nnz / (rows * cols) using the Borgelt heuristic (2003) to pick the best algorithm under the hood:

Scenario Algorithm chosen by method="auto"
Very sparse data (density < 0.15) eclat (bitset/SIMD intersections)
Dense data (density > 0.15) fpgrowth (FP-tree traversals)

🐻‍❄️ Polars Input

rusket natively accepts Polars DataFrames. Data is transferred via Arrow zero-copy buffers — no conversion overhead.

import polars as pl
import numpy as np
from rusket import fpgrowth, association_rules

# ── 1. Create a Polars DataFrame ────────────────────────────────────
rng = np.random.default_rng(0)
n_rows, n_cols = 20_000, 150
products = [f"product_{i:03d}" for i in range(n_cols)]

# Power-law popularity: top products appear often, tail products are rare
support = np.clip(0.5 / np.arange(1, n_cols + 1, dtype=float) ** 0.5, 0.005, 0.5)
matrix = rng.random((n_rows, n_cols)) < support

df_pl = pl.DataFrame({p: matrix[:, i].tolist() for i, p in enumerate(products)})
print(f"Polars DataFrame: {df_pl.shape[0]:,} rows × {df_pl.shape[1]} columns")

# ── 2. fpgrowth — same API as pandas ────────────────────────────────
freq = fpgrowth(df_pl, min_support=0.05, use_colnames=True)
print(f"Frequent itemsets: {len(freq):,}")
print(freq.sort_values("support", ascending=False).head(8))

# ── 3. Association rules ────────────────────────────────────────────
rules = association_rules(freq, num_itemsets=n_rows, metric="lift", min_threshold=1.1)
print(f"Rules: {len(rules):,}")
print(
    rules[["antecedents", "consequents", "confidence", "lift"]]
    .sort_values("lift", ascending=False)
    .head(6)
)

Or more concisely — just read a Parquet file:

import polars as pl
from rusket import mine

df = pl.read_parquet("transactions.parquet")
freq = mine(df, min_support=0.05, use_colnames=True)

How it works under the hood:
Polars → Arrow buffer → np.uint8 (zero-copy) → Rust fpgrowth_from_dense


💎 High-Utility Pattern Mining (HUPM)

Go beyond frequency by mining patterns that yield the highest total utility (e.g., profit), even if they appear rarely. rusket implements the state-of-the-art EFIM algorithm in Rust.

import pandas as pd
from rusket import mine_hupm

# Long-format DataFrame with utilities (profits)
df = pd.DataFrame({
    "txn_id": [1, 1, 1, 2, 2, 3, 3],
    "item": ["Apple", "Bread", "Milk", "Apple", "Milk", "Bread", "Milk"],
    "profit": [5.0, 2.0, 1.0, 5.0, 1.0, 2.0, 1.0]
})

# Mine itemsets with at least $7 total profit
# Returns a DataFrame sorted by utility
high_utility = mine_hupm(
    data=df,
    transaction_col="txn_id",
    item_col="item",
    utility_col="profit",
    min_utility=7.0
)
print(high_utility.head())

📊 Sparse Pandas Input

For very sparse datasets (e.g. e-commerce with thousands of SKUs), use Pandas SparseDtype to minimize memory. rusket passes the raw CSR arrays straight to Rust — no densification ever happens.

import pandas as pd
import numpy as np
from rusket import fpgrowth

rng = np.random.default_rng(7)
n_rows, n_cols = 30_000, 500

# Very sparse: average basket size ≈ 3 items out of 500
p_buy = 3 / n_cols
matrix = rng.random((n_rows, n_cols)) < p_buy
products = [f"sku_{i:04d}" for i in range(n_cols)]

df_dense = pd.DataFrame(matrix.astype(bool), columns=products)
df_sparse = df_dense.astype(pd.SparseDtype("bool", fill_value=False))

dense_mb = df_dense.memory_usage(deep=True).sum() / 1e6
sparse_mb = df_sparse.memory_usage(deep=True).sum() / 1e6
print(f"Dense  memory: {dense_mb:.1f} MB")
print(f"Sparse memory: {sparse_mb:.1f} MB  ({dense_mb / sparse_mb:.1f}× smaller)")

# Same API, same results — just faster and lighter
freq = mine(df_sparse, min_support=0.01, use_colnames=True)
print(f"Frequent itemsets: {len(freq):,}")

How it works under the hood:
Sparse DataFrame → COO → CSR → (indptr, indices) → Rust fpgrowth_from_csr


🌊 Out-of-Core Processing (FPMiner Streaming)

For datasets scaling to Billion-row sizes that don't fit in memory, use the FPMiner accumulator. It accepts chunks of (txn_id, item_id) pairs, sorting them in-place immediately, and uses a memory-safe k-way merge across all chunks to build the CSR matrix on the fly avoiding massive memory spikes.

import numpy as np
from rusket import FPMiner

n_items = 5_000
miner = FPMiner(n_items=n_items)

# Feed chunks incrementally (e.g. from Parquet/CSV/SQL)
for chunk in dataset:
    txn_ids = chunk["txn_id"].to_numpy(dtype=np.int64)
    item_ids = chunk["item_id"].to_numpy(dtype=np.int32)
    
    # Fast O(k log k) per-chunk sort
    miner.add_chunk(txn_ids, item_ids)

# Stream k-way merge and mine in one pass!
# Returns a DataFrame with 'support' and 'itemsets' just like fpgrowth()
freq = miner.mine(min_support=0.001, max_len=3)

Memory efficiency: The peak memory overhead at mine() time is just $O(k)$ for the cursors (where $k$ is the number of chunks), plus the final compressed CSR allocation.


🔄 Migrating from mlxtend

rusket is a drop-in replacement. The only API difference is num_itemsets:

- from mlxtend.frequent_patterns import fpgrowth, association_rules
+ from rusket import mine, association_rules

- freq  = fpgrowth(df, min_support=0.05, use_colnames=True)
+ freq  = mine(df, min_support=0.05, use_colnames=True)

- rules = association_rules(freq, metric="lift", min_threshold=1.2)
+ rules = association_rules(freq, num_itemsets=len(df),             # ← add this
+                           metric="lift", min_threshold=1.2)

Why num_itemsets? This makes support calculation explicit and avoids a hidden internal pandas join that mlxtend performs.

Gotchas:

  1. Input must be bool or 0/1 integers — rusket warns if you pass floats
  2. Polars is supported natively — just pass the DataFrame directly
  3. Sparse pandas DataFrames work too — and use much less RAM

📖 API Reference

mine

rusket.mine(
    df,
    min_support: float = 0.5,
    null_values: bool = False,
    use_colnames: bool = False,
    max_len: int | None = None,
    method: str = "auto",
    verbose: int = 0,
) -> pd.DataFrame

Dynamically selects the optimal mining algorithm based on the dataset density heuristically. It's highly recommended to use this instead of fpgrowth or eclat directly.

Parameter Type Description
df pd.DataFrame | pl.DataFrame | np.ndarray One-hot encoded input (bool / 0-1). Dense, sparse, or Polars.
min_support float Minimum support threshold in (0, 1].
null_values bool Allow NaN values in df (pandas only).
use_colnames bool Return column names instead of integer indices in itemsets.
max_len int | None Maximum itemset length. None = unlimited.
method "auto" | "fpgrowth" | "eclat" Algorithm to use. "auto" selects Eclat for <0.15 density distributions.
verbose int Verbosity level.

Returns a pd.DataFrame with columns ['support', 'itemsets'].


fpgrowth

rusket.fpgrowth(
    df,
    min_support: float = 0.5,
    null_values: bool = False,
    use_colnames: bool = False,
    max_len: int | None = None,
    verbose: int = 0,
) -> pd.DataFrame
Parameter Type Description
df pd.DataFrame | pl.DataFrame | np.ndarray One-hot encoded input (bool / 0-1). Dense, sparse, or Polars.
min_support float Minimum support threshold in (0, 1].
null_values bool Allow NaN values in df (pandas only).
use_colnames bool Return column names instead of integer indices in itemsets.
max_len int | None Maximum itemset length. None = unlimited.
verbose int Verbosity level (kept for API compatibility with mlxtend).

Returns a pd.DataFrame with columns ['support', 'itemsets'].


eclat

rusket.eclat(
    df,
    min_support: float = 0.5,
    null_values: bool = False,
    use_colnames: bool = False,
    max_len: int | None = None,
    verbose: int = 0,
) -> pd.DataFrame

Same parameters as fpgrowth. Uses vertical bitset representation (Eclat algorithm) instead of FP-Tree.

Returns a pd.DataFrame with columns ['support', 'itemsets'].


association_rules

rusket.association_rules(
    df,
    num_itemsets: int,
    metric: str = "confidence",
    min_threshold: float = 0.8,
    support_only: bool = False,
    return_metrics: list[str] = [...],  # all 12 metrics by default
) -> pd.DataFrame
Parameter Type Description
df pd.DataFrame Output from fpgrowth().
num_itemsets int Number of transactions in the original dataset (len(df_original)).
metric str Metric to filter rules on (see table below).
min_threshold float Minimum value of metric to include a rule.
support_only bool Only compute support; fill other columns with NaN.
return_metrics list[str] Subset of metrics to include in the result.

Returns a pd.DataFrame with columns antecedents, consequents, plus all requested metric columns.

Available Metrics

Metric Formula / Description
support P(A ∪ B)
confidence P(B | A)
lift confidence / P(B)
leverage support − P(A)·P(B)
conviction (1 − P(B)) / (1 − confidence)
zhangs_metric Symmetrical correlation measure
jaccard Jaccard similarity between A and B
certainty Certainty factor
kulczynski Average of P(B|A) and P(A|B)
representativity Rule coverage across transactions
antecedent support P(A)
consequent support P(B)

from_transactions

rusket.from_transactions(
    data,
    transaction_col: str | None = None,
    item_col: str | None = None,
) -> pd.DataFrame

Converts long-format transactional data to a one-hot boolean matrix. Accepts Pandas DataFrames, Polars DataFrames, Spark DataFrames, or list[list[...]].

from_pandas / from_polars / from_spark

Explicit typed variants of from_transactions for specific DataFrame types:

rusket.from_pandas(df, transaction_col=None, item_col=None) -> pd.DataFrame
rusket.from_polars(df, transaction_col=None, item_col=None) -> pd.DataFrame
rusket.from_spark(df, transaction_col=None, item_col=None)  -> pd.DataFrame

🧠 Advanced Pattern & Recommendation Algorithms

rusket provides more than just basic market basket analysis. It includes an entire suite of modern algorithms and a high-level Business Recommender API.

🎯 Hybrid Recommender API

Combine the serendipity of Collaborative Filtering (ALS/BPR) with the strict, deterministic logic of Frequent Pattern Mining.

from rusket import ALS, Recommender, mine, association_rules

# 1. Train your Collaborative Filtering model
als = ALS(factors=64).fit(user_item_matrix)

# 2. Mine your Association Rules
rules = association_rules(mine(user_item_matrix))

# 3. Create the Hybrid Engine
rec = Recommender(als_model=als, rules_df=rules)

# Personalized recommendations for a user (ALS)
items, scores = rec.recommend_for_user(user_id=42, n=5)

# Next Best Action for an active shopping cart (Association Rules)
cross_sell = rec.recommend_for_cart([14, 7], n=3)

📈 BPR & Sequential Patterns

  • BPR (Bayesian Personalized Ranking): Optimize for implicit feedback (clicks, views, purchases) directly by learning the ranking order of items instead of minimizing error.
  • Sequential Pattern Mining (PrefixSpan): Look at purchases over time instead of just single transactions (e.g., "Customer bought a Camera -> 1 month later bought a Lens").

rusket natively extracts PrefixSpan sequences directly from Pandas, Polars, and PySpark event logs with zero-copy mapping logic:

from rusket.prefixspan import sequences_from_event_log, prefixspan

# df can be a pd.DataFrame, pl.DataFrame, or pyspark.sql.DataFrame
sequences, mapping = sequences_from_event_log(
    df=spark_df, 
    user_col="user_id", 
    time_col="timestamp", 
    item_col="item_id"
)

# Mine patterns with absolute minimum support
freq_seqs = prefixspan(sequences, min_support=10, max_len=4)

🕸️ Graph Analytics & Embeddings

Integrate natively with the modern GenAI/LLM stack:

  • Vector Export: Export user/item factors to a Pandas DataFrame ready for FAISS/Qdrant using rusket.export_item_factors.
  • Item-to-Item Similarity: Fast Cosine Similarity on embeddings using rusket.similar_items(als_model, item_id).
  • Graph Generation: Automatically convert association rules into a networkx directed Graph for community detection using rusket.viz.to_networkx(rules).

⚡ Benchmarks

Scale Benchmarks (1M → 200M rows)

Scale from_transactions → fpgrowth Direct CSR → Rust Speedup
1M rows 5.0s 0.1s 50×
10M rows 24.4s 1.2s 20×
50M rows 63.1s 4.0s 15×
100M rows (20M txns × 200k items) 134.2s 10.1s 13×
200M rows (40M txns × 200k items) 246.8s 17.6s 14×

Power-user path: Direct CSR → Rust

import numpy as np
from scipy import sparse as sp
from rusket import mine

# Build CSR directly from integer IDs (no pandas!)
csr = sp.csr_matrix(
    (np.ones(len(txn_ids), dtype=np.int8), (txn_ids, item_ids)),
    shape=(n_transactions, n_items),
)
freq = mine(csr, min_support=0.001, max_len=3,
            use_colnames=True, column_names=item_names)

At 100M rows, the mining step takes 1.3 seconds — the bottleneck is entirely the CSR build.

Real-World Datasets

Dataset Transactions Items rusket mlxtend Speedup
andi_data.txt 8,416 119 9.7 s (22.8M itemsets) TIMEOUT 💥
andi_data2.txt 540,455 2,603 7.9 s 16.2 s

Run benchmarks yourself:

uv run python benchmarks/bench_scale.py       # Scale benchmark + Plotly chart
uv run python benchmarks/bench_realworld.py   # Real-world datasets
uv run pytest tests/test_benchmark.py -v -s   # pytest-benchmark

🏗 Architecture

Data Flow

pandas dense         ──► np.uint8 array (C-contiguous)  ──► Rust fpgrowth_from_dense
pandas Arrow backend ──► Arrow → np.uint8 (zero-copy)   ──► Rust fpgrowth_from_dense
pandas sparse        ──► CSR int32 arrays               ──► Rust fpgrowth_from_csr
polars               ──► Arrow → np.uint8 (zero-copy)   ──► Rust fpgrowth_from_dense
numpy ndarray        ──► np.uint8 (C-contiguous)        ──► Rust fpgrowth_from_dense

All mining and rule generation happens inside Rust. No Python loops, no round-trips.

The 1 Billion Row Architecture

To pass the "1 Billion Row" threshold without OOM crashes, rusket employs a zero-allocation mining loop:

  • Eclat Scratch Buffers: intersect_count_into writes intersections directly into thread-local pre-allocated memory bytes and computes popcnt in a single pass. It implements early-exit loop termination the moment it proves a combination cannot reach min_support.
  • FPGrowth Parallel Tree Build: Conditional FP-trees are collected concurrently inside the rayon parallel mining step, replacing the standard sequential loop and eliminating memory contention bottlenecks.
  • AHashMap Deduplication: Extremely fast O(N) duplicate basket counting replaces standard O(N log N) unstable sorts in the core pipeline.

Project Structure

├── src/                          # Rust core (PyO3)
│   ├── lib.rs                    # Module root & Python bindings
│   ├── fpgrowth.rs               # FP-Tree construction + FP-Growth mining (Rayon parallel)
│   ├── eclat.rs                  # Eclat vertical mining (bitset intersection + popcnt)
│   └── association_rules.rs      # Rule generation + 12 metrics (Rayon parallel)
│
├── rusket/                       # Python wrappers & validation
│   ├── __init__.py               # Package root
│   ├── fpgrowth.py               # FP-Growth input dispatch (dense / sparse / Polars)
│   ├── eclat.py                  # Eclat input dispatch (dense / sparse / Polars)
│   ├── association_rules.py      # Label mapping + Rust call + result assembly
│   ├── transactions.py           # from_transactions / from_pandas / from_polars / from_spark
│   ├── _validation.py            # Input validation
│   └── _rusket.pyi               # Type stubs for Rust extension
│
├── tests/                        # Comprehensive test suite
├── benchmarks/                   # Real-world benchmark scripts
├── docs/                         # MkDocs documentation
└── pyproject.toml                # Build config (maturin)

🧑‍💻 Development

Prerequisites

  • Rust 1.83+ (rustup update)
  • Python 3.10+
  • uv (recommended package manager)

Getting Started

# Clone
git clone https://github.com/bmsuisse/rusket.git
cd rusket

# Build Rust extension in dev mode
uv run maturin develop --release

# Run the full test suite
uv run pytest tests/ -x -q

# Type-check the Python layer
uv run pyright rusket/

# Cargo check (Rust)
cargo check

Run Examples

# Getting started
uv run python examples/01_getting_started.py

# Market basket analysis with Faker
uv run python examples/02_market_basket_faker.py

# Polars input
uv run python examples/03_polars_input.py

# Sparse input
uv run python examples/04_sparse_input.py

# Large-scale mining (100k+ rows)
uv run python examples/05_large_scale.py

# mlxtend migration guide
uv run python examples/06_mlxtend_migration.py

📜 License

MIT License

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

rusket-0.1.22.tar.gz (386.4 kB view details)

Uploaded Source

Built Distributions

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

rusket-0.1.22-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (929.7 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

rusket-0.1.22-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (991.2 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

rusket-0.1.22-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (712.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rusket-0.1.22-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (813.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rusket-0.1.22-cp314-cp314t-musllinux_1_2_x86_64.whl (927.1 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

rusket-0.1.22-cp314-cp314t-musllinux_1_2_aarch64.whl (986.8 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

rusket-0.1.22-cp314-cp314-win_amd64.whl (566.6 kB view details)

Uploaded CPython 3.14Windows x86-64

rusket-0.1.22-cp314-cp314-musllinux_1_2_x86_64.whl (930.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

rusket-0.1.22-cp314-cp314-musllinux_1_2_aarch64.whl (991.2 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

rusket-0.1.22-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (712.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rusket-0.1.22-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (813.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rusket-0.1.22-cp314-cp314-macosx_11_0_arm64.whl (697.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rusket-0.1.22-cp314-cp314-macosx_10_12_x86_64.whl (647.9 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rusket-0.1.22-cp313-cp313t-musllinux_1_2_x86_64.whl (929.3 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

rusket-0.1.22-cp313-cp313t-musllinux_1_2_aarch64.whl (989.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rusket-0.1.22-cp313-cp313-win_amd64.whl (568.8 kB view details)

Uploaded CPython 3.13Windows x86-64

rusket-0.1.22-cp313-cp313-musllinux_1_2_x86_64.whl (933.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

rusket-0.1.22-cp313-cp313-musllinux_1_2_aarch64.whl (992.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

rusket-0.1.22-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (715.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rusket-0.1.22-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (815.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rusket-0.1.22-cp313-cp313-macosx_11_0_arm64.whl (697.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rusket-0.1.22-cp313-cp313-macosx_10_12_x86_64.whl (648.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rusket-0.1.22-cp312-cp312-win_amd64.whl (568.9 kB view details)

Uploaded CPython 3.12Windows x86-64

rusket-0.1.22-cp312-cp312-musllinux_1_2_x86_64.whl (933.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

rusket-0.1.22-cp312-cp312-musllinux_1_2_aarch64.whl (992.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

rusket-0.1.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (715.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rusket-0.1.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (815.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rusket-0.1.22-cp312-cp312-macosx_11_0_arm64.whl (698.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rusket-0.1.22-cp312-cp312-macosx_10_12_x86_64.whl (648.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rusket-0.1.22-cp311-cp311-win_amd64.whl (566.2 kB view details)

Uploaded CPython 3.11Windows x86-64

rusket-0.1.22-cp311-cp311-musllinux_1_2_x86_64.whl (929.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

rusket-0.1.22-cp311-cp311-musllinux_1_2_aarch64.whl (991.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

rusket-0.1.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (712.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rusket-0.1.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (813.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rusket-0.1.22-cp311-cp311-macosx_11_0_arm64.whl (698.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rusket-0.1.22-cp311-cp311-macosx_10_12_x86_64.whl (649.5 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rusket-0.1.22-cp310-cp310-win_amd64.whl (566.2 kB view details)

Uploaded CPython 3.10Windows x86-64

rusket-0.1.22-cp310-cp310-musllinux_1_2_x86_64.whl (929.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

rusket-0.1.22-cp310-cp310-musllinux_1_2_aarch64.whl (991.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

rusket-0.1.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (712.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rusket-0.1.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (813.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

Details for the file rusket-0.1.22.tar.gz.

File metadata

  • Download URL: rusket-0.1.22.tar.gz
  • Upload date:
  • Size: 386.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rusket-0.1.22.tar.gz
Algorithm Hash digest
SHA256 78f6c6f7b9c82eb6c6641d9f92e2b0cd04ddbc04b69e38701442c4a3400413d9
MD5 4466a411d60f7af54701c5a583458465
BLAKE2b-256 dfa3b7e718ca2fb13268f3468cd08d6021a3b12d8c0b818cdd32bd0c61fccedd

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22.tar.gz:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 283fab35ea8c2c623b4452a1139cc5925a60ecbc55a167eeb1dce9d9ed94a9e6
MD5 ae317d2983ff2484b4fcaaae8859a16a
BLAKE2b-256 5c7f9a6f76912caad724d35e5bfeb67679dc377ce5eb35e32b33994aa93e467f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 886ad937de1f04a1994eecec20293e9010ce3e67b6c74fa18e487c0740d676b6
MD5 ea80ec2ae6161c42d36908452fcba685
BLAKE2b-256 8ac1d8e940db456999caf1254259dd47eeb4db551a03b673b90ddf868d5898a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 527516a7d56214a6ec0187c8ee845a724078ff82d4ada2f2f922f752a8b5f8a0
MD5 77b3ac4f590b3f3f89ed6e0630ae459a
BLAKE2b-256 6d074bf5b601d90cddf0431ba0d1d623782e977c67c02f25fef9cf0bc84b95d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3953b5e17a3e09b15fc7d49d40c2b3613eb13a92e41a2e09173685bf4e027fe6
MD5 45f6e556200d7cdc0a766980798a5342
BLAKE2b-256 fd47b8d97ee23f4dc29d6aedf19965088bb2df63c438f0c6bfa4a321208147a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b69c98ee1da373757aec96cf69705e3aac38d1aaefd42d7991112dba54c16e6
MD5 4f46aef7bdf5ae419e2777c57e3deff1
BLAKE2b-256 f2d0b19e30637c1ae6ad35f879b3b5be602a2d2e4be0147f3852a38d366bb05a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b0ff128e74ad433bece763e08c7a30b36286d449a6ce457785c3221f551b5dc5
MD5 5c8fef79637abb414370353c3738f04f
BLAKE2b-256 bee9cd411fe07b3e3ac3cc3b7b9f06608a7fbe6dbe8b1e498029f1ca2a57df37

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.22-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 566.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rusket-0.1.22-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e743b7c9224fde4a49137a0d62ddf0f7b904911be862145495cef3da0d47b295
MD5 185a19ab7468275f08d8406f632b0a4e
BLAKE2b-256 d2a5e6144fc5eff127df0f4b03c2b92a4384c77ef674d8cf2e175a985faf7bb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314-win_amd64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d25edf6bdf5ae0f41b27c7a9defc41a2b026ca681edbe41e9bc5c470f6a18e88
MD5 feb137ed13d42b474ae48501f904fa28
BLAKE2b-256 b0203d0414cf8040f9debfca71c97a968bb13bb54ff0cd7e415af34fd644b75c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ad63b4dfcf95e168a0e3f38a9fef93bbb45d10bea94c4936a0b96176fe9f9eac
MD5 c3bc9de36d539f846254a2b54e3ceb0d
BLAKE2b-256 5317ed6d1c7dbfd87526457f5f2e60d21bc8c2ed9bfc6c6e95af01f017a9d71a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e2f2c958086717bed0f698369e3e2b6405b75d3669aaeb54ce403bff5c2381f
MD5 c18993215ab7b0497cb8352f955a93c8
BLAKE2b-256 80209cc0188f700cd01edd5f2c25485e5928ac2f0e63fa8ee5bc7b4e3dd8e988

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 06fe783e7695b39b6e4154c14996b896db21bbf008f5f69f417707a29da749fb
MD5 0d8083879fb2148bffbdc2d085cb4210
BLAKE2b-256 793707e94dc1ceeabe24c967aa8382708476850c5bd64675ad69ef42ad7e0f5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e65f001375112f761da1b973c44ab6284fceaa148056d5f648de4d8363e2dce3
MD5 5067b1966ed1ff59c549907d5520eb0c
BLAKE2b-256 7a6ab35fbcad5e479bf1d9e020be69137220aa62eae3d0edc8df796f5b585d8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a597822c9070608fde4f188912bd91b143a12ded7d141afc796ebf97765c7d16
MD5 645470945276ab464f93012900d31d07
BLAKE2b-256 6302f0009a8aefd91be98a1318ee30cdc8214918829573b990e983184ac94be9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 59a7fb4b91f44c63d514c601f7f024f20da43da79c509bf4b25ad29ad46456bd
MD5 9ef97c959268492d3587e05cafba2057
BLAKE2b-256 0dbbdf87c49b618388e56f2f972a48b5fb1e9ebd4a07afd9ffa1f81cc9838017

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 67041b045f5880d8e907ed1b5224e02e0a9b44447784ae6d4a1132f54e9e6a03
MD5 2c5083c4a9bffad4058a0e4c2ad3e0f2
BLAKE2b-256 d590dc073a385b42ab0256b4cff3f1a664308426a6f32f3bcf129f7913d03628

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313t-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.22-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 568.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rusket-0.1.22-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 09c6c7e08f222009acca98bd3ccc39e13a8f9060988e926887b1834eef6c51fe
MD5 8df4a261d830154aa815b4efeab8742a
BLAKE2b-256 a8c739974d46d07f4c407f0c76b6ac7c7e9536c2e296dbecc0c5c85a31545a1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313-win_amd64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 85487a47326854586ebeb22d60cb9d337d7a2115c70bc9626394a0d4b81b2781
MD5 8a58d83b11ff51dad96929819a8264ab
BLAKE2b-256 ab640814b3b1992b17b32b590429abc488e470d4aea93edf288c3d0760151452

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 45f3146082f486d4ad1c786cdb56e8db344a27208789b274474381cbd5f3a0a0
MD5 d58b35afcaabee8b9b72be8916250543
BLAKE2b-256 f3ee00ed2f9fa5eb551cb6b66efa695257c0cf5c958ff2a7c88970c0155f598f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b0fea3b410fc50de82dd8bc60cab963bc2c6307b5bd66adada9ae8421cb8912
MD5 e7659e52be9bd560cbf99d66d0a0cb3f
BLAKE2b-256 27e3be82c7f37d1b03defeed466bf06b22564f3be13c0331e937b3c4c1429a41

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 068a241f771268dc32deb7a7f3ba5c4778f95705400a68cadc86f9f2c4d7f6e2
MD5 adcc50c1e21ee43b5152117cad29b8e9
BLAKE2b-256 5336e7334cb39c29410d1c19e7c27c425fb9c53d4c16fd9d82626d82eeea36f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 45d18197bd74a79102c3b857ec00be59387781d1ff8b6dacfdb623f3d2cd507b
MD5 dfabed288b010dd34ab8800dac71e61d
BLAKE2b-256 f0787b57409d31c007855e25276a888a7d03992c08d7e23ef5bc640868e0cfde

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bb1b0b6e2026765f17c110c9b45a9a1d6007fcb2216882f6f44aee61f029c943
MD5 4a1e48b24f608574bae9876f1947a291
BLAKE2b-256 6fd3314651a942c7bdef2685da10f6281844dc27910427c58033f5c4e6eb3db0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.22-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 568.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rusket-0.1.22-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e621635f2bec2e9069c52d3428dd1dad31f170baf6b16810514cb8ace5159181
MD5 934aba942e4316bd9274ec319f1acc2e
BLAKE2b-256 bc33475ce2161b0612d93d8c25aa60b584e8d98f0530ff8e8776385dd6a11e8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp312-cp312-win_amd64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d5b8c88da421c615cd05cbc325a17bd0643349847e37bb4941ba882c3c100bb
MD5 fc4e4c23c6618734fc25f17c5256a65a
BLAKE2b-256 c87a3846f43970627e2956f484b996b08f3dd5356f1de73942f81c66cc1d45b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c782134c1899c140dd77432a48650ea8cc8226a84b4c95f78f8a2114ce36cb02
MD5 d0431de569b74e945460ed6e73e1b530
BLAKE2b-256 dd5e08c5557db8d23514dd8dc72d078ca5a1acb73a85684d1d519b5181ea847c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b6d42a74b2ab2199b79dbd07105a9a20e7eb287516f88ea2ec7462c4d3c0f9e
MD5 4929d1c0d349caf311305cc109a7fdb5
BLAKE2b-256 8e420c01e1b296714a4ccab85c9a6999fc0e5065d870050d24a239f8598c6c8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 36fd8354db3f6f4b76dd818822d6f385bc26ce5be8bd6ff75aeaf57a1b6c1f00
MD5 0f8ba26ebe4c50f128009e299a9dd85c
BLAKE2b-256 5ffc80d2babe98a2ddd3dd49076f4c114b0fc6aa11c729aa1f7ad903c71036b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a6dccdeda7b4bb8708c67c9061ee9364acbaad96a1de19a540dd4cb55f4855e
MD5 8501148be30031dbe1be01dafd61f552
BLAKE2b-256 5526282d92e08c84ca44c4f1df0a027f725508b1af14f89ce983acefa2265e53

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 78b2f8effa7877e48fb941ceef02c60c53006afc8fa173accf16a6ef2d28e515
MD5 7e2ece755afa11f55fc1db9c6c2d565a
BLAKE2b-256 b7942ad49ad58b44fe150c49de0bc2c30aa6036416c3cf17908a1af9b63208e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.22-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 566.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rusket-0.1.22-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 aee633b364863209600b0b721abee93cc98b20ce0129597ecd8ba4286f19406d
MD5 64656b595a22c8202710198718176260
BLAKE2b-256 a1a177360b4f917aa7170d75bd3889b7f0583fbf9be2a4064f560e52e50dde42

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp311-cp311-win_amd64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 991ee3082b53d66bce8cc1325c38e54792ed7276a213609cd9d7033e42ef7a2a
MD5 79a3835762bad0d720fea7431fb333ae
BLAKE2b-256 e6b2e131bffaff6286daecd328f40bf03e912ab61209357bb87a7bf51a84c974

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c3bebf720e608573617bac6a02ec1d82c93ca1af7717dd34da541d91e3254ca1
MD5 797b7475f47adbce822347838c2d2f51
BLAKE2b-256 f313bdddcb30217189f61bee255d3bba242815c1378cd0e95b62183874e4cb1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea4b094e20c8b4164674a223c151edcc1eccc33da06c4086ff27aee70989f5b7
MD5 980df7dd3c4ca11fbe557b59e8d4a225
BLAKE2b-256 02cc9346be0b34a63595125bd974836f57e1b8b173fd05de1d4459deaf022fb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6e74d489e7e1a7ed3042560d1d592c160ae69fe33bd9729149d8c1d6325c6dea
MD5 3d2112039868c01e32d9ddb8c8216337
BLAKE2b-256 606fe89fb7e7245ea084a06805d6c2c8c4fd91d119219e3fdbbe78ceefb9a5d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec7d53a9e1a6064d0d625fb2e0ab11884d084a7f75af9689e98df32f356f1b60
MD5 462240b3b1364bcd925f5a6c2ca1ed4d
BLAKE2b-256 ac380d25af6244d7b9da59bcc2513102a0646456ee727e19b78a13f9948281f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 054f47a1ba432fdeb9cc9a6e585cfa433e5a66d8683af38bdb45d9362c9662a7
MD5 a4c08ee05db99ebdc68bc533494c0d8a
BLAKE2b-256 4097a3676c2be9c26f8e7ea825b81a9ba9af9185c7e4bed0b8cc3d38a975458d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.22-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 566.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rusket-0.1.22-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b962ce7579265343a01276d4eb213ce1332b5526ea55d76fbd6fccc9ffa43ffd
MD5 50ca365be9010ac3bba364eec3549b08
BLAKE2b-256 aef5e94d47c6771718dfa7bf410c31a58cf7d99dc602351c07d44508634ee144

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp310-cp310-win_amd64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e5397de5b7ae8447c71875e0d15d9da9cdff2e5bdcb92b9331141f2cdd411443
MD5 6eecd07c955826f08dede3134a25608e
BLAKE2b-256 770f849e9dcb9511b7229f77ca9348114bd00ecae8eac0a21c9b2c7af933ef30

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 eaab0285739ee68338646034f32c2d8fea5e358bc5db900783789fd1cd86efac
MD5 7654224936edc4c0d3ed440d9b5c7c92
BLAKE2b-256 234ad1398b473657749b299ca30d7a2cce3fbbf84f40c44716245769bbc11405

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5dbce2057846a09844a338b1e572a60ed02aa91c5d5f6e924f149ee9ba1651a
MD5 57cd52b17aec52bef18b818a25ad782b
BLAKE2b-256 5519dcca420361a8d89b3775aa60e1bc40298270d15e31cbdecd67393ee6f8d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on bmsuisse/rusket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rusket-0.1.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a3e5effa402bb24a70ccd54a523713b854b598813bd4eacd29c8cb63d8859188
MD5 b5170a2b60f96e722ff63d0c53d3efcd
BLAKE2b-256 fa9989ab78365fc6d8cb42c9bb25de0910c5577888a0470b1b32946a3cafca65

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on bmsuisse/rusket

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