Skip to main content

CREST — Chunked Rust Engine for Single-cell Transcriptomics

CREST runs the standard single-cell RNA-seq workflow (QC → normalisation → highly variable genes → scaling + PCA → neighbours → Leiden → UMAP → differential expression) with native Rust kernels behind a scanpy-style Python API. It reproduces scanpy's results, was faster at every step in our 0.2.0 benchmark, and never materialises a normalised, scaled or dense copy of the count matrix: the raw counts are streamed through the kernels one chunk of cells at a time (hence the name), from memory or from disk (Parquet), with memory bounded by one chunk.

Documentation: crest-sc.readthedocs.io: installation, quickstart, how it works, API reference, benchmarks (sources in docs/).

import crest

bf = crest.read_10x_h5("filtered_feature_bc_matrix.h5")           # or backed="dir/" for out-of-core
bf = crest.pp.filter_cells(bf, min_genes=200)
bf = crest.pp.filter_genes(bf, min_cells=3)
crest.pp.normalize_total(bf, target_sum=1e4)                       # lazy
crest.pp.log1p(bf)                                                 # lazy
crest.pp.highly_variable_genes(bf, n_top_genes=2000, flavor="seurat")
crest.pp.scale(bf, max_value=10)                                   # applied exactly inside PCA
crest.tl.pca(bf, n_comps=50)
crest.pp.neighbors(bf, n_neighbors=15)
crest.tl.leiden(bf, resolution=1.0)
crest.tl.umap(bf)
markers = crest.tl.rank_genes_groups(bf, "leiden", method="wilcoxon")   # Polars DataFrame
de = crest.tl.pseudobulk_de(bf, ["donor", "condition"], "~ donor + condition",   # DESeq2 per cell type
                            contrast=("condition", "stim", "ctrl"), groupby="cell_type")
adata = bf.to_anndata()                                            # hand over to scanpy / scverse

Downstream tools (docs/downstream.md): Harmony batch integration (crest.tl.harmony), Scrublet doublet detection (crest.pp.scrublet), seurat_v3 HVGs, a parallel Leiden resolution sweep with stability scores (crest.tl.leiden_sweep), reference mapping / label transfer (crest.tl.ingest) and the DESeq2 likelihood-ratio test (DESeq2(test="LRT", reduced=...)).

Installation

pip install crest-sc            # import name: crest (the PyPI name `crest` is taken)
pip install "crest-sc[anndata]" # AnnData / scipy interop

Needs Python ≥ 3.10; runtime dependencies are only numpy, polars and h5py. Building from source needs a Rust toolchain and maturin: maturin develop --release (see docs/installation.md).

What is validated against scanpy

Every step is checked against its reference implementation in the test suite (tests/test_crest.py, run by CI on every change) and on real data in the module benchmarks (bench/<module>/). On PBMC3k with the scanpy tutorial parameters:

step agreement with scanpy
filter_cells, filter_genes, QC metrics identical
highly_variable_genes (seurat) identical gene set; dispersions_norm within 2e-6
scale + pca identical subspace (0.000° principal angles), variance ratio within 5e-9
neighbors connectivities identical given the same kNN (within 1e-5)
leiden same number of clusters, equal or higher modularity
umap equal kNN preservation / silhouette (stochastic layout)
rank_genes_groups t-test, Wilcoxon scores within 1e-4 (1e-7 on identical input), same p-values and log fold-changes
score_genes identical, including scanpy's control-gene sampling (within 3e-7)
DESeq2 (pseudobulk) R DESeq2 1.42: size factors, dispersions, log2FC, p-values within ~1e-9 on simulated designs; identical calls on 5 of 8 Kang 2018 cell types, >99% on the rest (docs/deseq2.md); LRT statistics within 1e-6
highly_variable_genes(flavor="seurat_v3") identical gene sets and ranks, variances_norm within 1e-14 (loess port matches skmisc to 1e-14)
harmony same integration quality as harmonypy 2.0 (iLISI 1.81 vs 1.81, cLISI 1.01, ARI 0.82) at 3.5× the speed; neighbourhoods as close to harmonypy's as two harmonypy seeds are to each other
scrublet AUROC 0.863 vs 0.863 on Kang 2018 demuxlet doublets, 12× faster
ingest 90.7% vs 89.8% label accuracy mapping stimulated onto control PBMCs, 15× faster

Performance

Standard scanpy tutorial pipeline, each tool in its own process on the same 4-core / 16.9 GB machine (scanpy 1.11 with igraph Leiden, numba JIT warmed up beforehand; CREST in-memory and streamed from Parquet). Full tables: bench/whitepaper/results/report.md.

dataset scanpy CREST in-memory CREST out-of-core
68k PBMC (real, 10x) 134 s · 5.2 GB 19 s · 1.2 GB (7.1× faster) 24 s · 1.0 GB
100k PBMC v3 346 s · 10.3 GB 57 s · 2.5 GB (6.1× faster) 109 s · 1.1 GB
200k PBMC v3 out of memory 120 s · 4.1 GB 283 s · 1.0 GB

Per step at 100k cells (speed-up of CREST in-memory over scanpy): QC 17×, HVG 7.6×, scale + PCA 15×, neighbours 3.4×, Leiden 3.5×, UMAP 4.9×, t-test 9.3×, Wilcoxon 7.8×, reading the 10x .h5 1.9× (gzip-bound). Out-of-core memory stays ~1 GB regardless of dataset size. Leiden clusterings agree with scanpy (ARI 0.87–0.89, same number of clusters).

time and memory vs cells per-step time

The 100k/200k datasets are generated from the real 10k PBMC v3 matrix by make_dataset.py (each cell mixes a real cell with a nearest neighbour after binomial thinning), so sparsity, library size and cluster structure are realistic.

The figures above come from the 0.2.0 run on a 4-core cloud VM (bench/whitepaper/results/); numbers on a 64-core workstation, reported at each tool's best thread count as well as at matched thread counts, will replace them. The paper benchmark (six real datasets plus a synthetic scaling series, 5 repeats, thread scaling, per-core CPU/clock/memory timelines, accuracy against scanpy, bootstrap confidence intervals) runs on your own machine with one command:

cd /path/with/space                            # everything goes under ./crest-bench, nothing in $HOME
curl -LO https://raw.githubusercontent.com/harshameghadri/CREST/dev/scripts/crest_paper_bench.sh
bash crest_paper_bench.sh --tier standard      # quick | standard | full

It clones and builds CREST in a throwaway uv environment, runs the test suites, records the machine, downloads and checksums the data, runs every configuration in its own process, and writes report.md, CSV/LaTeX tables, PDF/PNG figures and a .tar.gz. The pieces live in bench/paper/ (datasets.py, run_one.py, monitor.py, run_all.py, accuracy.py, summarize.py); module benchmarks in bench/deseq2/, bench/harmony/, bench/doublets/ and bench/ingest/.

How it works

  • Lazy, fused, streamed. Raw counts stay in one compact store — CSR in memory, a Polars triplet frame, or a directory of Parquet parts read one at a time. Cell/gene filters and normalize_total/log1p are recorded and applied per cell inside each kernel, so every step is a single pass with no intermediate copies.
  • Exact PCA without densifying. One pass accumulates the gene × gene Gram matrix from sparse rows (threads own disjoint row blocks), an eigen-solver gives the loadings, a second pass projects cells. sc.pp.scale(max_value) is applied exactly: zero entries map to a per-gene constant, so the scaled matrix is a sparse matrix plus a rank-one term that centring removes.
  • kNN. Exact search with tiled GEMM (the FAISS "flat" trick) for small data; above 20k cells an inverted-file index — cells bucketed by k-means, each bucket searched against its 20 nearest buckets, like cell lists in molecular dynamics — polished by NN-descent (99.7% recall on 108k PBMC cells).
  • UMAP. umap-learn's objective and defaults, optimised in parallel by domain decomposition: each thread owns a range of cells, writes only those, and reads the rest from a snapshot refreshed 16× per epoch.
  • Leiden. Traag et al. (2019): fast local moving, refinement, aggregation.
  • DESeq2 in Rust. A step-by-step port of DESeq2's DESeq() / results(), one parallel pass over genes per stage, with the NB likelihood evaluated without the cancellation R suffers at tiny dispersions. Pseudobulk DE for 8 cell types of Kang 2018 takes 7 s (R: 131 s, pydeseq2: 202 s).
  • Sparse Wilcoxon. All implicit zeros of a gene form one tie block with a closed-form rank, so only non-zero values are sorted.
  • Harmony in Rust. The harmony2 algorithm with cells sorted by batch, so the per-batch sums and the ridge correction are GEMMs; per-cell updates in parallel.

Details: docs/concepts.md and docs/memory_model.md.

Data formats

read_10x_h5 (Cell Ranger v2/v3; backed= streams to Parquet), read_10x_mtx, read_h5ad (no anndata needed), BioFrame.from_scipy / from_triplets / from_anndata, write_parquet / read_parquet, to_anndata, to_scipy.

Scope and limitations

  • HVG flavours: seurat, cell_ranger, seurat_v3 / seurat_v3_paper (not pearson_residuals).
  • Batch integration: Harmony only (no scVI/BBKNN).
  • DESeq2: Wald and LRT (no lfcShrink, lfcThreshold), additive formulas (pass design_matrix= for interactions); see docs/deseq2.md.
  • ingest places query cells in the reference UMAP by umap-learn's transform initialisation (no further optimisation).
  • UMAP layouts are deterministic for a fixed thread count, not across thread counts.

Why "Chunked"?

CREST started as Polars expression plugins ("columnar"). That design could not compute per-cell quantities correctly and was replaced by the engine described above: raw counts stored once, filters and transforms recorded, and every step a fused Rust pass over chunks of cells. Polars remains the table layer (obs, var, results) and the Parquet reader. The acronym stays; the "C" now says what the engine does.

License

MIT

Metadata

Release files for crest-sc 0.3.0

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

Source distribution (sdist)

Source distribution for crest-sc 0.3.0
File Size Uploaded
crest_sc-0.3.0.tar.gz 658.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for crest-sc 0.3.0
File
crest_sc-0.3.0-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details
crest_sc-0.3.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
crest_sc-0.3.0-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
crest_sc-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
crest_sc-0.3.0-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
crest_sc-0.3.0-cp310-abi3-musllinux_1_2_armv7l.whl CPython 3.10 abi3 Linux musl 1.2+ ARMv7l Details
crest_sc-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
crest_sc-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
crest_sc-0.3.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-32 Details
crest_sc-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
crest_sc-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
crest_sc-0.3.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
crest_sc-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 19.5 MB

Release files / crest_sc-0.3.0.tar.gz

Download URL crest_sc-0.3.0.tar.gz
Size 658.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ea82dfd4d89fe795436498509ae0abef538104201bbe1cb6b4b9318d88751339
BLAKE2b-256 checksum
How to use checksums
b41dc903e722f6d9597eb93259423b27cd2ed82f9ea0eb647b15e3e5055d4240
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-win_arm64.whl

Download URL crest_sc-0.3.0-cp310-abi3-win_arm64.whl
Size 1.2 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
a3b0f791a8c3ffc0ff4213e3e102bb338333d73f27182fbcba04c584cf34b4f8
BLAKE2b-256 checksum
How to use checksums
c74f849ca30818e0de838b91e9740848fbe7505f2c30ce63a9bfea2a42c05c7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-win_amd64.whl

Download URL crest_sc-0.3.0-cp310-abi3-win_amd64.whl
Size 1.4 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
1f8aed8c1891bc7b3c395337a3f315131fe94aa88739544f6eb048e2ae6a2bf9
BLAKE2b-256 checksum
How to use checksums
5d8c11aff427976df3f9b1b477d4a5c6534b26a88e22ad9d54a88c0527766b71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-win32.whl

Download URL crest_sc-0.3.0-cp310-abi3-win32.whl
Size 1.0 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
581a0850ca89437364cc3279c4b579b5a9e6e883f71f49b2235b9192e039f26d
BLAKE2b-256 checksum
How to use checksums
ad004d3bd94e7471202c9512e8273f1027e8b044924b44441813c03a7c382453
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL crest_sc-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 2.0 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
69ae3f0012804715e8d1fdda8329c0c9ccfe09707ec43fede55279f338b0bcd8
BLAKE2b-256 checksum
How to use checksums
966a0674cfdcc9e75ba4f10dc6f694494aa0798e5d577005f39e0d5f1d57564b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-musllinux_1_2_i686.whl

Download URL crest_sc-0.3.0-cp310-abi3-musllinux_1_2_i686.whl
Size 1.6 MB
Tags CPython 3.10 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
c043748664602caab26aad34bc818483a1838641f2d7903593beba35d4e5dbe6
BLAKE2b-256 checksum
How to use checksums
c5e4fc06695474f532f85617be454fc88119c86a2bd6d56504eb440ddc6ac94d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-musllinux_1_2_armv7l.whl

Download URL crest_sc-0.3.0-cp310-abi3-musllinux_1_2_armv7l.whl
Size 1.4 MB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
29286786b67047911ccb5cfcb92a9e881ddb85fed0e12b26b80af232c8fe2682
BLAKE2b-256 checksum
How to use checksums
b10b3ec0dcf2b1abf06e1309158d1f04c00d57734b91a9be4aa40fc9330d92c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL crest_sc-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 1.6 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
cd860fe844d0206f968e5cbfd13ae1ec6eda56adde5d4251da1eb2b259805f69
BLAKE2b-256 checksum
How to use checksums
7a52a8f9802681be1b175694c3904a10763040799f1b5aa83496a6bbf7dd52ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL crest_sc-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
498f458e034682e5f6164ec501fff41e55caff8f6a100cfaa445480c8c63d359
BLAKE2b-256 checksum
How to use checksums
e7441419a24eba4d72f0531f86423c53f13ce1b353cc230feb2fb086155fe8b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL crest_sc-0.3.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
c1e36b224eec2d029c3dc3deb9451cda782ce7f0487bd9cf4495cd89eb959279
BLAKE2b-256 checksum
How to use checksums
d66ce932ebea2fc4fa3cd32f5707bf4ceb837daeef42ac3702d50c89369dcd4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL crest_sc-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 1.1 MB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
c4cd04c259262d9463555056397aafdbb4054313bdc5428d9f5193150188495b
BLAKE2b-256 checksum
How to use checksums
7168faf0457075e72cf6019d5411ec57a48b90e1aaa39f72fe94b5a2b15f7ce8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL crest_sc-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
3f01c6046083679c6f82fc05a6116d2af4b56129ba6bbe9f5e82923ee31c1f2a
BLAKE2b-256 checksum
How to use checksums
ea83e977dbff25186ed3d11609afd2b6da3d3be52d100d7af271ccc36142c3ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL crest_sc-0.3.0-cp310-abi3-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b9cf0865e83cebd81564d2ecf88e4e6e9a1eace2541433cfcdbcd82999c025ac
BLAKE2b-256 checksum
How to use checksums
e373e1a3f9c3948d2c67949dcd8b9e19df9f972bbb1da5d322c78ccbf9ace337
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / crest_sc-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL crest_sc-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d8f542ae0ed5e6cb14f3a782fa942b4ed39a798b5c9950c6169f2287a4c3a8a1
BLAKE2b-256 checksum
How to use checksums
b8eb95d8160b34652f874e5ebe7ad307432891b4bb39d5ed95d2326c1d3f240f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.3.0 This release

14 release files

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