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.21.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.21-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (929.3 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

rusket-0.1.21-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (992.1 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

rusket-0.1.21-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (712.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rusket-0.1.21-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (813.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

rusket-0.1.21-cp314-cp314t-musllinux_1_2_x86_64.whl (926.7 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

rusket-0.1.21-cp314-cp314t-musllinux_1_2_aarch64.whl (987.4 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

rusket-0.1.21-cp314-cp314-win_amd64.whl (566.2 kB view details)

Uploaded CPython 3.14Windows x86-64

rusket-0.1.21-cp314-cp314-musllinux_1_2_x86_64.whl (930.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

rusket-0.1.21-cp314-cp314-musllinux_1_2_aarch64.whl (991.0 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

rusket-0.1.21-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (713.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rusket-0.1.21-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (813.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rusket-0.1.21-cp314-cp314-macosx_11_0_arm64.whl (697.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rusket-0.1.21-cp314-cp314-macosx_10_12_x86_64.whl (648.1 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rusket-0.1.21-cp313-cp313t-musllinux_1_2_x86_64.whl (930.3 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

rusket-0.1.21-cp313-cp313t-musllinux_1_2_aarch64.whl (989.7 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

rusket-0.1.21-cp313-cp313-win_amd64.whl (568.7 kB view details)

Uploaded CPython 3.13Windows x86-64

rusket-0.1.21-cp313-cp313-musllinux_1_2_x86_64.whl (933.3 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

rusket-0.1.21-cp313-cp313-musllinux_1_2_aarch64.whl (992.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

rusket-0.1.21-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (715.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rusket-0.1.21-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (815.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rusket-0.1.21-cp313-cp313-macosx_11_0_arm64.whl (697.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rusket-0.1.21-cp313-cp313-macosx_10_12_x86_64.whl (648.3 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rusket-0.1.21-cp312-cp312-win_amd64.whl (568.8 kB view details)

Uploaded CPython 3.12Windows x86-64

rusket-0.1.21-cp312-cp312-musllinux_1_2_x86_64.whl (933.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

rusket-0.1.21-cp312-cp312-musllinux_1_2_aarch64.whl (992.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

rusket-0.1.21-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (715.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rusket-0.1.21-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.21-cp312-cp312-macosx_11_0_arm64.whl (697.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rusket-0.1.21-cp312-cp312-macosx_10_12_x86_64.whl (648.4 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rusket-0.1.21-cp311-cp311-win_amd64.whl (566.0 kB view details)

Uploaded CPython 3.11Windows x86-64

rusket-0.1.21-cp311-cp311-musllinux_1_2_x86_64.whl (929.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

rusket-0.1.21-cp311-cp311-musllinux_1_2_aarch64.whl (990.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

rusket-0.1.21-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (712.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rusket-0.1.21-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (813.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rusket-0.1.21-cp311-cp311-macosx_11_0_arm64.whl (698.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

rusket-0.1.21-cp310-cp310-win_amd64.whl (566.0 kB view details)

Uploaded CPython 3.10Windows x86-64

rusket-0.1.21-cp310-cp310-musllinux_1_2_x86_64.whl (929.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

rusket-0.1.21-cp310-cp310-musllinux_1_2_aarch64.whl (991.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

rusket-0.1.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (712.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rusket-0.1.21-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.21.tar.gz.

File metadata

  • Download URL: rusket-0.1.21.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.21.tar.gz
Algorithm Hash digest
SHA256 1219513609e823a2151bbac808b16df2345b53742e0bf25ffe8a654c779862d1
MD5 9a23523b19ebfcfb144ab6062cc8930e
BLAKE2b-256 f0802f4cf70f7f91758079b772e916dfc7fe2a32d2d07bbfc34215b1e538d04e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21.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.21-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0e557ec07596cc02c973ba5155e08c55f1ea5ab0af484a876e78ba9d608a3e93
MD5 76056ee32dd2db13ff0e50dd35d37e49
BLAKE2b-256 c43b355796edd0b862e82639c0eea2b49d849a301dd60d7849a05ed8f20ef7f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 10da970e792555bcfabc14dbbda17baebad6d337ab69460d648e3c79ca09f923
MD5 9cd6372f4cb672eec3ca49296836aa52
BLAKE2b-256 f95b368efd3962a5987bd0d6c257c825d4653418174b3825349ded5432ca132d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff80ecb1959dbcb69dd9d21cad786bb258a20af5c529afa1875bdaebefc9b453
MD5 48c33428b11af028caee701056b3f968
BLAKE2b-256 939d7c4884e7d554431b9d73e928228c7e1b84ddc0a0c3d57039a27a28bd4296

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cd080eca0a01bf193e3dddfb457ec1ada10ea0bccf05219cea4964b5744a3a95
MD5 043eed33fff34ba5e4fcdb6b0cf47244
BLAKE2b-256 9f310d4dd7a9697369afb23b4ad41213f5f1bb49eef1664f5c0ee0305e4d21dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 112ebf780d09ee3db5ccbf578eea9e8eca1aeb342b6afafb7052529907904a65
MD5 54bf6ff8d4c61063e66d1580d9decafb
BLAKE2b-256 bc8d770f047a219c0cf0baf3884da83e045f2f69d860a5ed516ff4003621dfc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f6062877bb76658b1310dc2657419d043209cbd84031bfcb8025ae848834f297
MD5 38c31d90d093c9affd4277b9cef9d810
BLAKE2b-256 fc31b79d843365c60a33932aec9bb9442ac5f1935c1b55d688b2ab2065de2830

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.21-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 566.2 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.21-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9120e4b5c5bf709a48f18eaedbc8d5fabd019de99097b056080c6b88cdd6cb08
MD5 3b37bb2ca40432e1f05c1f3265f30a4e
BLAKE2b-256 d43ae84fee6488f56ba80043370e35267571f26877a5092b5d0d5ab56b71ae3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9fe77009f0cea45934b93139ac64976c869162520b44b544e03be2e3f53bed5e
MD5 a85a7a31d3123abc79e5688d7d58e258
BLAKE2b-256 a4760085ba0030bb30a442ecfbf87c72c5e86dc26b405026cdcf0ca61a706e57

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5628d1b789f022c41745f5418a84a233f5e205b3ba629742b3e8d165fcf8bff5
MD5 aca76026e2bc7971715089b5ba9f3684
BLAKE2b-256 0c1e980d7a7161bc6fa8d6e693c61b62ac3504ed25f6a358fd55cbeb281edbba

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7d3ebec48320dedd6bf358747bb5f9ca58c15280b25bb062a8413374184b8626
MD5 77487bb11cbbad54cb05760aa820b518
BLAKE2b-256 77fe63cfc96192c757debbc437f54c78d73373e48d8ea9ebf1a31919d2af248e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d709cccfaed42b41d259cf4a0e35cd24cb3bf0ddf6602959ba68787cd69107bd
MD5 1bfa41f47e0cdfd1289dc2aa699a96ea
BLAKE2b-256 04190ef5ceb2ebf5667c50ae0ad20b7a16d57dafd74d33066286dc5260c4f5aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef0b5d03490ca850fefed51aa5685217be680abf616ea2a00055056fede216c8
MD5 712b73b733e1ec9b1ee4329e4fabf12c
BLAKE2b-256 7fe698224c0db74389b02d5d27d18f82b3f7c3cdfaae3b45cf6f8cc05f837ece

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b2b13c772a3617131a314b1e5dd3453c978132cf8498f354192c7117a1978d1d
MD5 64ad80c2dad7920dc8369f58a9bae0a8
BLAKE2b-256 6e460201850d13b3ddf3beec3ac4503543e37790b585ce0ab5bae4923d5a20ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 257ebad6d9232d31ab588930869ad2e6e0b0402000c9a417d395074fa8ecf2f8
MD5 c37cc7c993b60a8b18adf566a86269f7
BLAKE2b-256 95c5e7046b973e23edd7d7428c1a0cca972dd7f3a0a3c467f6a5df44f832df23

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4001e1d30130871a60ec1e7a012b08ee462a1a934edd02ee94317a8b06973f28
MD5 d4590e02c6889f27dd019977520d4d4e
BLAKE2b-256 6da40e6ebb4c2a77fde13892f5961ae6bd8fdb4eb8bf7f72d2426f92a0697a0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.21-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 568.7 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.21-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 487db60ae0d4bec1da25d9ed3c1785901f55aa04a79e780fdaac19f8b34181fd
MD5 e21c5901be7cec2bb5c46a381f3d8aa8
BLAKE2b-256 82d18a2f547da2a2a88af78385deeea3ae96c9fc73baf88407a82ed737df30e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e0b0c10c3ceedf10ae5f775a56e674f4e1340ac20f7eb40be7052b2f9833922d
MD5 5e5e36207fdfea271f9b498f7569402b
BLAKE2b-256 3262c4fef58d8a10722450034d0324303ab2565a53be556360d127f6293f068b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ebc2423d3f8acf651d75c90f31c4af761fa4d63458301b79ad2bd5ebe250edd7
MD5 12a80232e9d3817af5d7b0840546b53c
BLAKE2b-256 4d421751bb79e148f34d16645765615dac65ba74e4cbe3b9b9078b5e7fb6c3cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 daeb7a285e024892efda73fcdd18d32799fc50ba59b5fabd599e47a9ae2b650a
MD5 2ffaa0eb19e03f1d8ce327352a275369
BLAKE2b-256 ac7eedfbedd0cd91121404cc05628c5dddc8f29d21cb0d22f8decdc990a04c06

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8fcc4aa660319aa2817ad9c815641d07593199df3de9a4a382ba68d9313a9716
MD5 b0f32db64502cdfba598b932c26fcd16
BLAKE2b-256 38569071265672af29e91dd1078e8b1c1226e1f8d255c4d9ab8b7e453ad65a76

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30f281ff37cf9939577f82c06f6b8a444afcfba1d4ecbedb65b9fac47fb7cfc8
MD5 0f0a2d49757f56b7433a05478ec3021f
BLAKE2b-256 54e3330e4d6e5de4f6c57082d71606974425a30d9025e522b907718240c0c262

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4f3c2abb2bfdf49e7fe05b5cb40459caa5224f01b3575a31a2fda2a01231e8c9
MD5 c003809f80c26a357963de1bb846412c
BLAKE2b-256 54a59794b562fc02f27f32acfd5293bc3be86b317967abac6f30a3f1b7ba049d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.21-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 568.8 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.21-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d47164bef1129e0149e51525a9ff4a92059b6188d3f259da88116f9a2bba8194
MD5 319f1dc34100b1c96f7550ef5c3366d9
BLAKE2b-256 e9884967f44a3e8432bc0f586cbafe9909cf550cb8da5c0eb32bc7a00533575b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6c45138fd8cb803347eb703551a5d838c85efe4966f3f8cc81d7089fb78a1ceb
MD5 ac8c7caaaee7b2265d81726aa56b758d
BLAKE2b-256 3a6b421fb37cb5cbf7b97a6a475e3b3e1089e85923644ebda1c28e455f80425e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 04146e7912b7d5ada082967573846ba00df2f3b7f8dcfa790be4a8b872260529
MD5 46436b0b28d49f6619e519fb35f16910
BLAKE2b-256 9badd89b19c60cc75990cfab54b198f8c6393e68f0f80794f1a542fa6589795d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cee5e73e96bd2ac72479051799d1d1b936f82b0ab083b412a254a87f5c38c4f9
MD5 e7578028fdbd90da18174d4d87c85c37
BLAKE2b-256 30521c8f037cb0e55ace3210d0c47f2feab54d39637ef8ab5e55393735767a02

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7132b272e9ef1f1ca52e10d0a287b72d2892d934a497720aa2aa79051e36735f
MD5 1e00d9846efaff625b8531dc9a25d14e
BLAKE2b-256 72c22e903495795c653341a8d8c066f109a36dcab58572bf16656882d4d5a9a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 833a122d6b8ed5c6ceba70643e9ca0af07993714ec099550d5b26a79a9476d84
MD5 d7a063825ae38e0894e84bb3c7d188c4
BLAKE2b-256 1ee203891eba0cce2c17de006c6f69dbb2fa444c311ce353cdde2f0ccf7e2365

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b0ed7d46e483e0a28fcb5da9864a44f0d8eb16565718e5aed4ebe27efe7cc100
MD5 164409915221fa2ca93a0e4a030ca042
BLAKE2b-256 c252d7cf7d6c543c026b899192a80fa0f8b9bed6e086a690a504f6f1a4ede3d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.21-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 566.0 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.21-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 47c80dc9c8e445d6910c0e68d709e73f7df3f9b812c3fb65b3fa2cb96d6ee96f
MD5 cfd8fdb2e250eb2d1c672b59b22b77cf
BLAKE2b-256 8bec0c441db309488e822efbf8a11935aa871b467c691adc758d55ce7f903c11

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9c3796bc64722ad2960e5d5eb5d91373450f78677e0181f7336cc18f60767a43
MD5 efa7726116ff8dd7e5347c39f5e30b31
BLAKE2b-256 47a2caaaf92e19fc9eecdcba637c2d800511a65ce9f3af91794302a61e0adddf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3f6549d094618ca5244a157c7682dc87f20e0843ef1061f6c291ff64627f8ab5
MD5 b166c84298ef2404385b6ac3412d1411
BLAKE2b-256 ee5a88eaec2f50836ac8b5fb3cf265e64db58efa35019434af5ebf0465e911c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14f243e85294a7c2c189dcc88a4b42803e429eb279f30c1479e61fd91524c05c
MD5 99bfe38673297532b2fb98d7bdfbcd87
BLAKE2b-256 c99767ce9b8c06b80f535fd589bf6a3b419ab1f1c937ab82ac0df203206a1a02

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 70013f03e256e99884e1a04e153f25ef771c7ccb56848dbf3cf1f950300cee53
MD5 3910b212727d3c14e066e1b4787ac536
BLAKE2b-256 283ebf8f3578c7da181d2defef97f9c586ebac8bf3523000f84991d9ae4620f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d7284fa0739f2407da015d8ed97df518ffa252cb602816a15146c2c4b0c992c9
MD5 937180e2c93b0e266cbf748bb1a1dc11
BLAKE2b-256 d5b2a163ef017c26d31047f09eec7faae61fc05b11566670f25004484fcf4493

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 faa0447d41be1a9b4b9c02311eadb1f3570d5f21eb1f61700505421631755086
MD5 743cef34381d64a758151785373f56fb
BLAKE2b-256 da8ffa76ef0ca360b99f543fbb4937605e5deaad785cb5e8546ba9d08e77144c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rusket-0.1.21-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 566.0 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.21-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 226acc03c82092478396896f5e83025401994340d0b72802742f5d1e3b00ba43
MD5 0f2545e87bc41db7f1513d24922983af
BLAKE2b-256 935feeac284c0ddf77af23f26cdbc5bd6a5654958309d03944c0d2eeab367dfc

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 64afd681165c98c37355d7aa48772fdfeccce198aa29b925bd913e710f6e2109
MD5 eea4899a53ebb588f4a43691f999a445
BLAKE2b-256 bec8dedd0f7492ab5f393d46962aaa4b8555f880d54b0930c772c070850fe4cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 893101b169aee61d955abffc10535e14fef7a836bf6887ce0161f216c076077a
MD5 7c2c4173710438e833c8aee020277b92
BLAKE2b-256 7aae7ecc36db3ae26d688a384a1a6c7bab75b4114c38b7866418fb9af07c05b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 112ed36e3d1188a0e8d3b50857dd795a6de2605ecf3019506c71bde6610adcaf
MD5 6543aa13e98b7505200ba649d81d114f
BLAKE2b-256 de3c7fc720b36f049630f8c02874dab09cc733fdccb045b77ea7b25b2a887339

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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.21-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rusket-0.1.21-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cd8188d2e4f55c54219e5bd755a8cfa9623b4fd199e420e7fc77571ef10e160f
MD5 a65174fda60e368b3f5b57f74261b983
BLAKE2b-256 3b4aad8ac88c5134f991000d32d48eb725779b253e2373b03ef82dda331332f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rusket-0.1.21-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