High-performance in-memory graph API with RoaringBitmaps, Python bindings via PyO3
Reason this release was yanked:
outdated api
Project description
RustyChickpeas
An in-memory graph API written in Rust, using RoaringBitmaps as a fundamental data structure.
Overview
RustyChickpeas provides a high-performance, in-memory graph database API that:
- Uses RoaringBitmaps: Efficient set operations for node/relationship IDs
- Rust-First: High-performance core implementation
- Python-Friendly: PyO3 bindings for seamless Python integration
- In-Memory: Optimized for fast graph operations
Project Status
✅ Implementation Complete - Core functionality implemented with comprehensive benchmarks and Python bindings.
- ✅ Immutable GraphSnapshot with CSR adjacency and columnar properties
- ✅ GraphSnapshotBuilder for efficient bulk loading (requires u32 node IDs)
- ✅ Parallel finalization using rayon for improved performance
- ✅ Python bindings via PyO3
- ✅ Bulk loading from Parquet files
See rustychickpeas-core/benches/README.md for benchmark information.
Key Features
- ✅ Immutable GraphSnapshot - Read-optimized graph with CSR adjacency and columnar properties
- ✅ GraphSnapshotBuilder - Efficient bulk loading (requires u32 node IDs directly)
- ✅ RustyChickpeas Manager - Version management for multiple graph snapshots
- ✅ Parallel Finalization - Uses rayon to parallelize index building during finalization
- ✅ Label and property support with inverted indexes
- ✅ Efficient traversal using CSR (Compressed Sparse Row) format
- ✅ Python bindings via PyO3
- ✅ Bulk loading from Parquet files
Installation
pip install rustychickpeas
Or from source:
git clone https://github.com/freeeve/rustychickpeas.git
cd rustychickpeas/rustychickpeas-python
pip install maturin
maturin develop --release
Platform Support
RustyChickpeas is tested and supported on:
- ✅ Linux x86_64 - Full support
- ✅ macOS x86_64 (Intel) - Full support
- ✅ macOS arm64 (Apple Silicon) - Full support
- ✅ Windows x86_64 - Full support
Limitations:
- ⚠️ Linux aarch64 (ARM servers, e.g., AWS Graviton) - Not currently tested in CI. The Rust core should compile and work, but Python bindings require native runners or complex cross-compilation setup. Contributions welcome!
Python Version Support
RustyChickpeas requires Python >= 3.10 and is tested against Python 3.10, 3.11, 3.12, 3.13, and 3.14.
Supported Python Versions by Platform
| Platform | Python Versions |
|---|---|
| Linux x86_64 | 3.10, 3.11, 3.12, 3.13, 3.14 |
| macOS x86_64 (Intel) | 3.11, 3.12, 3.13, 3.14 |
| macOS arm64 (Apple Silicon) | 3.10, 3.11, 3.12, 3.13, 3.14 |
| Windows x86_64 | 3.10, 3.11, 3.12, 3.13, 3.14 |
Note: Python 3.10 is not available on macOS x86_64 runners due to dependency issues with the GitHub Actions environment. Python 3.10 works fine on macOS arm64 (native runners) and all other platforms.
PyO3 Compatibility
-
Python 3.10-3.12: Fully supported by PyO3 0.20.3
-
Python 3.13-3.14: Uses stable ABI compatibility mode (
PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1) since PyO3 0.20.3 doesn't officially support these versions yet. This works correctly but uses the stable ABI for forward compatibility.Note for local development: When using
cargo checkorcargo buildwith Python 3.13/3.14, you may need to set the environment variable:export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 cargo check --package rustychickpeas-python
maturinbuilds automatically handle this via thepy-limited-api = "auto"setting inpyproject.toml.
Quick Start
Python
Basic Usage (with Manager)
import rustychickpeas as rcp
# Create a manager for version management
manager = rcp.RustyChickpeas()
# Create a builder with a version
builder = manager.create_builder(version="v1.0")
# Add nodes with labels
builder.add_node(1, ["Person"])
builder.add_node(2, ["Person"])
builder.add_node(3, ["Company"])
# Add relationships
builder.add_rel(1, 2, "KNOWS")
builder.add_rel(1, 3, "WORKS_FOR")
# Set properties (automatic type detection)
builder.set_prop(1, "name", "Alice")
builder.set_prop(1, "age", 30)
builder.set_prop(2, "name", "Bob")
builder.set_prop(3, "name", "Acme Corp")
# Finalize and add to manager (uses the version set when creating the builder)
builder.finalize_into(manager)
# Retrieve snapshot by version
graph = manager.get_graph_snapshot("v1.0")
# Query nodes
node = graph.get_node(1) # Get Node object (node ID 1)
print(f"Node labels: {node.get_labels()}") # ["Person"]
print(f"Node property 'name': {node.get_property('name')}") # "Alice"
# Query relationships - get neighbor Node objects
neighbors = graph.get_neighbors(1, rcp.Direction.Outgoing)
print(f"Node 1 has {len(neighbors)} outgoing neighbors")
for neighbor in neighbors:
print(f" Neighbor ID: {neighbor.id()}, labels: {neighbor.get_labels()}")
# Or get just the neighbor IDs
neighbor_ids = graph.get_neighbor_ids(1, rcp.Direction.Outgoing)
print(f"Neighbor IDs: {neighbor_ids}") # [2, 3]
# Get relationships as Relationship objects (includes type, start/end nodes)
relationships = graph.get_rels(1, rcp.Direction.Outgoing)
for rel in relationships:
print(f" {rel.get_type()}: {rel.get_start_node().id()} -> {rel.get_end_node().id()}")
Standalone Usage (without Manager)
import rustychickpeas as rcp
# Create a standalone builder
builder = rcp.GraphSnapshotBuilder(version="v1.0")
# Add nodes and relationships
builder.add_node(1, ["Person"])
builder.add_node(2, ["Person"])
builder.add_rel(1, 2, "KNOWS")
# Finalize into a snapshot
graph = builder.finalize()
# Query the graph
node = graph.get_node(1)
neighbors = graph.get_neighbors(1, rcp.Direction.Outgoing)
Loading from Parquet Files
import rustychickpeas as rcp
# Direct loading (creates a standalone snapshot)
graph = rcp.GraphSnapshot.read_from_parquet(
nodes_path="nodes.parquet",
relationships_path="relationships.parquet",
node_id_column="id",
label_columns=["label"],
start_node_column="from",
end_node_column="to",
rel_type_column="type"
)
# Or load into a builder for more control
manager = rcp.RustyChickpeas()
builder = manager.create_builder(version="v1.0")
builder.load_nodes_from_parquet("nodes.parquet", node_id_column="id", label_columns=["label"])
builder.load_relationships_from_parquet("relationships.parquet",
start_node_column="from",
end_node_column="to",
rel_type_column="type")
builder.finalize_into(manager)
graph = manager.get_graph_snapshot("v1.0")
Rust
use rustychickpeas_core::RustyChickpeas;
// Create a manager (handles multiple snapshots by version)
let manager = RustyChickpeas::new();
// Create a builder from the manager with version
let mut builder = manager.create_builder(Some("v1.0"), None, None);
// Add nodes and relationships (node IDs must be u32)
builder.add_node(1, &["Person"]);
builder.add_node(2, &["Person"]);
builder.add_rel(1, 2, "KNOWS");
// Finalize the builder
let snapshot = builder.finalize(None);
// Add to manager
manager.add_snapshot(snapshot);
// Retrieve the snapshot by version
let snapshot = manager.get_graph_snapshot("v1.0").unwrap();
// Query the snapshot
let neighbors = snapshot.get_out_neighbors(1);
println!("Node 1 neighbors: {:?}", neighbors);
Version Management
RustyChickpeas supports version management at the snapshot level using the RustyChickpeas manager. Each snapshot can have a version string (e.g., "v1.0", "v2.0") that identifies it.
Python
import rustychickpeas as rcp
# Create a manager
manager = rcp.RustyChickpeas()
# Create and build version 1.0
builder1 = manager.create_builder(version="v1.0")
# ... add nodes/relationships ...
builder1.finalize_into(manager)
# Create and build version 2.0
builder2 = manager.create_builder(version="v2.0")
# ... add nodes/relationships ...
builder2.finalize_into(manager)
# Retrieve snapshots by version
v1_snapshot = manager.get_graph_snapshot("v1.0")
v2_snapshot = manager.get_graph_snapshot("v2.0")
# List all versions
versions = manager.versions() # ["v1.0", "v2.0"]
How Version Management Works
-
Setting Version: Pass
versionparameter tocreate_builder()when creating the builder, or useGraphSnapshotBuilder.set_version(version_string)to set it later. -
Storage: After calling
builder.finalize(), add the snapshot to the manager usingmanager.add_snapshot(snapshot). The snapshot will be stored under its version (if set) or "latest" if no version is set. -
Retrieval: Use
manager.get_graph_snapshot(version_string)to retrieve a snapshot by version. -
Version Storage: Versions are stored as strings and can be any identifier you choose (e.g., "v1.0", "2024-01-01", "production").
Capacity and Auto-Growing
The capacity_nodes and capacity_rels parameters are optional performance hints for pre-allocation:
- Defaults: If not specified, starts with 2^20 (1,048,576) nodes/relationships capacity
- Auto-Growing: The builder automatically grows as needed (doubling capacity each time)
- Maximum Limits:
- Nodes: Up to 2^32 - 1 (4.3 billion) - enforced by
u32NodeId - Relationships: Up to 2^64 - 1 (18.4 quintillion) - limited by memory
- Nodes: Up to 2^32 - 1 (4.3 billion) - enforced by
- When to Specify Capacity: Only specify if you know the approximate size upfront to avoid reallocations. For most use cases, the default auto-growing behavior is sufficient.
Example:
# Uses default (2^20 = 1,048,576), auto-grows as needed
builder = manager.create_builder(version="v1.0")
# Large graph - specify capacity hint to avoid reallocations
builder = manager.create_builder(version="v1.0", capacity_nodes=10_000_000, capacity_rels=50_000_000)
Performance
See rustychickpeas-core/benches/README.md for benchmark information.
For Python-specific performance tests, see rustychickpeas-python/tests/benchmark_large_parquet.py.
Highlights:
- Node existence: ~7ns (constant time)
- Property lookup: ~44ns (constant time)
- Label queries: ~56ns for 100 nodes, ~348ns for 100K nodes
- BFS traversal: ~130ns per node
- Bitmap operations: Sub-microsecond for millions of elements
Limits and Scalability
Hard Limits
- Nodes: Up to 2^32 - 1 (4,294,967,295 nodes) - Limited by
u32NodeId - Node IDs: Must be
u32(0 to 2^32 - 1) - Users should map their own IDs to u32 if needed - Relationships: Up to 2^64 - 1 (18,446,744,073,709,551,615) - Limited by
u64counter, but practically constrained by memory - Unique Strings (labels, relationship types, property keys): Up to 2^32 - 1 (4,294,967,295) - Limited by
u32InternedStringId - Properties per Node: No hard limit, constrained by available memory
- Property Values: No hard limit, constrained by available memory
Note: While relationships can theoretically reach 2^64 - 1, practical limits are determined by available system memory. Each relationship requires storage in CSR arrays and indexes.
Tested Scales
✅ 1 Million Nodes + 1 Million Relationships - Tested and verified:
- Memory usage: ~2.7GB (with string interning) to ~3.4GB (without)
- Bulk load rate: ~4M entities/sec from Parquet files
- Direct builder rate: 21-31M nodes/sec, 12-19M rels/sec
- Query performance: Sub-millisecond for most operations
- See rustychickpeas-python/tests/benchmark_large_parquet.py for large-scale benchmarks
Practical Considerations
Memory Usage:
- Base overhead: ~3.5 bytes per node/relationship (structure + indexes)
- Properties: Additional memory depends on property count and size
- String interning: Reduces memory signficantly for graphs with high string duplication
- Property value interning: Optional feature saves 32-50% memory when property values have high duplication
Performance Characteristics:
- Direct Builder Operations: 21-31M nodes/sec, 12-19M rels/sec (exceeds 10M/sec target)
- Bulk Loading: ~4M entities/sec from Parquet files (sequential processing, I/O bound)
- Finalization: Parallelized using rayon for label/type indexes, property columns, and inverted indexes
- Queries: Constant-time for indexed operations (label/type lookups)
- Traversal: Linear with graph connectivity (BFS, shortest path)
- Memory: Linear growth with graph size
Recommended Usage:
- Small graphs (< 100K nodes): Excellent performance, minimal memory footprint
- Medium graphs (100K - 10M nodes): Good performance, manageable memory requirements
- Large graphs (10M+ nodes): Feasible but memory becomes the primary constraint; finalization benefits from parallelization
- Very large graphs (100M+ nodes): Possible with sufficient RAM (100GB+); parallel finalization helps reduce finalization time
Memory Estimation:
Base memory ≈ (nodes + relationships) × 3.5 bytes
+ Properties (varies by property count/size)
+ String interning overhead (minimal)
- String interning savings (~21.5% if enabled)
Example: 1M nodes + 1M relationships with properties:
- Without interning: ~3.4GB
- With basic interning: ~2.7GB
- With property value interning (50% reuse): ~1.4GB
Testing
Running Tests
Rust Tests:
cargo test --workspace
Python Tests:
cd rustychickpeas-python
pytest tests/
Test Coverage
Test coverage is set up for both Rust and Python:
Run Coverage:
./scripts/coverage.sh # Linux/macOS
.\scripts\coverage.ps1 # Windows
Coverage Reports:
- Rust:
coverage/rust/tarpaulin-report.html - Python:
coverage/python/htmlcov/index.html
See docs/COVERAGE.md for detailed coverage documentation.
License
Licensed under MIT license (LICENSE or http://opensource.org/licenses/MIT).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rustychickpeas-0.2.0.tar.gz.
File metadata
- Download URL: rustychickpeas-0.2.0.tar.gz
- Upload date:
- Size: 69.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbfef2b7c0d5aa9a723c3fdd00a85b7d99b21523036bdf2edd6e1fa67bf14fca
|
|
| MD5 |
a401c5df71c016dfc700d5bf3a73d8c6
|
|
| BLAKE2b-256 |
701d19ff66094886c2fa4c019f07721f6665d8243a9d66f664a8e4946c606397
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0.tar.gz:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0.tar.gz -
Subject digest:
fbfef2b7c0d5aa9a723c3fdd00a85b7d99b21523036bdf2edd6e1fa67bf14fca - Sigstore transparency entry: 704782244
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
196e03521e94ae48d18375c9c4c167b83f91412ed8753cb99265f1273bd68230
|
|
| MD5 |
1ad99bea57fe2ddde6e9fe1a19981e07
|
|
| BLAKE2b-256 |
807f2ec14eb10be7a087d2674fdee9a50c0fda9bd7d4ecf0d7fdf57671a0417b
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp314-cp314-win_amd64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp314-cp314-win_amd64.whl -
Subject digest:
196e03521e94ae48d18375c9c4c167b83f91412ed8753cb99265f1273bd68230 - Sigstore transparency entry: 704782414
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp314-cp314-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp314-cp314-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.14, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8b6f53bc8edc6f812a0c40dfac6fb011cdd65f404874aff91cdf3a7ff9a581e
|
|
| MD5 |
1bfc74f1b7f018d8975a90b30bd262d6
|
|
| BLAKE2b-256 |
9b074bb072d97a357d1520b507d20e4c271f9e70c37314da778c4dae733c34b5
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp314-cp314-manylinux_2_34_x86_64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp314-cp314-manylinux_2_34_x86_64.whl -
Subject digest:
d8b6f53bc8edc6f812a0c40dfac6fb011cdd65f404874aff91cdf3a7ff9a581e - Sigstore transparency entry: 704782319
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd1c9bfe9d102e2934ee4b7bab449738c7047763fe97c15a95af4adbcc22df66
|
|
| MD5 |
aca889a0378172e9d94428a9ae73ecd5
|
|
| BLAKE2b-256 |
1e4dcdc5d41100f18a24dc1839fa67f4f8a0b212006cff84718d40181cc91c68
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
dd1c9bfe9d102e2934ee4b7bab449738c7047763fe97c15a95af4adbcc22df66 - Sigstore transparency entry: 704782279
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
837515fc26bded17deac77113e5dac5392337d66ac30d75dcf8641983e3d5174
|
|
| MD5 |
a9a1418751f65e12d75297e4f81f3c6f
|
|
| BLAKE2b-256 |
b7962104f3842ffe571fbc1138b2189463714f95a8d221c76688cb5e8dba55d0
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp313-cp313-win_amd64.whl -
Subject digest:
837515fc26bded17deac77113e5dac5392337d66ac30d75dcf8641983e3d5174 - Sigstore transparency entry: 704782399
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b53b27ef246676e0f68bec6d64913f11aabe129b4c75f9634fb79d5d7eb42a1
|
|
| MD5 |
dc792ae492f58df49357b5b1fd145a29
|
|
| BLAKE2b-256 |
70b2fe7a3b195645e204a1bb58dcb509a404d1f8ded62c3ce662595ad88fde1d
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp313-cp313-manylinux_2_34_x86_64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp313-cp313-manylinux_2_34_x86_64.whl -
Subject digest:
5b53b27ef246676e0f68bec6d64913f11aabe129b4c75f9634fb79d5d7eb42a1 - Sigstore transparency entry: 704782410
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e394f0f62d1dcd0a4cd264cecf624db90e49e840218335b376d1c81ee9b6f5f3
|
|
| MD5 |
e69bac8fe70dddabc1b66f088c5f3896
|
|
| BLAKE2b-256 |
7caeb73c4f6261afdf9b16ba00997b15b5cd716cd08df7abce9a7cf5bd96d1f9
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
e394f0f62d1dcd0a4cd264cecf624db90e49e840218335b376d1c81ee9b6f5f3 - Sigstore transparency entry: 704782329
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd1511a951e88db677f7be614723f377c6321a649330a5237fd6e042ab19014d
|
|
| MD5 |
0f5529829b5168bdb97e059d2b5bcfa0
|
|
| BLAKE2b-256 |
84967e0420737eac2fce65f9ee6375860ae97a0f5e34f5c1c7e968c4ef099bde
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp312-cp312-win_amd64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp312-cp312-win_amd64.whl -
Subject digest:
dd1511a951e88db677f7be614723f377c6321a649330a5237fd6e042ab19014d - Sigstore transparency entry: 704782252
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7167850b4bebe89c1282fe061042db17684b725ed948c5c29adf0d1de8412826
|
|
| MD5 |
2844cba6ac9869957f4f58d186bf62e3
|
|
| BLAKE2b-256 |
ac508dc2b22f4df728db111c00a180efb659206e21348181f712c0d8e2a4bf30
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp312-cp312-manylinux_2_34_x86_64.whl -
Subject digest:
7167850b4bebe89c1282fe061042db17684b725ed948c5c29adf0d1de8412826 - Sigstore transparency entry: 704782337
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c350120b20fa46e1c239f2accabcd2a9c50212aeedd4331be411ab004b58611e
|
|
| MD5 |
00f4222db751570c59a918f6e564dcac
|
|
| BLAKE2b-256 |
4c0ccc4bb66bd96088da9c65e75762f0c33933710f126fb5f6ecc934cfb513a3
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
c350120b20fa46e1c239f2accabcd2a9c50212aeedd4331be411ab004b58611e - Sigstore transparency entry: 704782368
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3f967dbd8dcd6ec5b7d14fa99be59462ac92255d920524682a5c891d2541d8c
|
|
| MD5 |
e4657b153b29985fbed92adf72551186
|
|
| BLAKE2b-256 |
084d700ff6e08a6e55083e69c83446a8855737b8b7d099ac22667560cbf4bd88
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp311-cp311-win_amd64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp311-cp311-win_amd64.whl -
Subject digest:
a3f967dbd8dcd6ec5b7d14fa99be59462ac92255d920524682a5c891d2541d8c - Sigstore transparency entry: 704782304
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
144077668913c1ba2b1ca4a67a41242e2d7104230bc67a7b3a1420df2bc0a214
|
|
| MD5 |
a54e345d9db6c1b87f39eba5719efe44
|
|
| BLAKE2b-256 |
76a8965883a397135f52b4a39f61bbd9eef4c524ecbfce784a1644dbeeceb386
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp311-cp311-manylinux_2_34_x86_64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp311-cp311-manylinux_2_34_x86_64.whl -
Subject digest:
144077668913c1ba2b1ca4a67a41242e2d7104230bc67a7b3a1420df2bc0a214 - Sigstore transparency entry: 704782294
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5157ea11a98aca7dd1ba5d2b4cb4be5efc1ff3f0f570d070678fe898cfa04e08
|
|
| MD5 |
03915fa53d48e4ff5e84786846b53a8d
|
|
| BLAKE2b-256 |
3f7f6a052f60a53e8b7d1a65f98caa51772e2973871acc8c1078102226cf68d4
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
5157ea11a98aca7dd1ba5d2b4cb4be5efc1ff3f0f570d070678fe898cfa04e08 - Sigstore transparency entry: 704782348
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12ec6f57afa292bf6ea9545cb8a07d9f44dd93c94ba67abc27f3a79d86f3652f
|
|
| MD5 |
0d724ee473f47720a73604d31edab69a
|
|
| BLAKE2b-256 |
5a6a118627e1d172962500715a243a1decde941ec864439861efeabda3356546
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp310-cp310-win_amd64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp310-cp310-win_amd64.whl -
Subject digest:
12ec6f57afa292bf6ea9545cb8a07d9f44dd93c94ba67abc27f3a79d86f3652f - Sigstore transparency entry: 704782384
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp310-cp310-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp310-cp310-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 4.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
172cc36c8a761a9b512a0625e4a31033da0ecff0fd48bf1656a5db57b6630506
|
|
| MD5 |
28eba96da3162292fdfcfefed01a3393
|
|
| BLAKE2b-256 |
434caabfaf2952aa6675b22eb2c4a839ab8e8520c6db15245b6cdff79b2f8d7e
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp310-cp310-manylinux_2_34_x86_64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp310-cp310-manylinux_2_34_x86_64.whl -
Subject digest:
172cc36c8a761a9b512a0625e4a31033da0ecff0fd48bf1656a5db57b6630506 - Sigstore transparency entry: 704782266
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file rustychickpeas-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustychickpeas-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
586b7cc8e07ad90505af108e51c048a863a389e48bf17ad76fc0e1d10ae0e3c7
|
|
| MD5 |
0628f2f60f1c1b3dc4ad71d75a6e34b4
|
|
| BLAKE2b-256 |
fc70590788e81dbbf40970091f9e6458f9d05b3941c4752ac7208a02b397411f
|
Provenance
The following attestation bundles were made for rustychickpeas-0.2.0-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
publish.yml on freeeve/rustychickpeas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rustychickpeas-0.2.0-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
586b7cc8e07ad90505af108e51c048a863a389e48bf17ad76fc0e1d10ae0e3c7 - Sigstore transparency entry: 704782358
- Sigstore integration time:
-
Permalink:
freeeve/rustychickpeas@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/freeeve
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@14a3d0a8f8b87f29a4f16c9ac420746890e2c99d -
Trigger Event:
release
-
Statement type: