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, 49× faster
ingest 90.7% vs 89.8% label accuracy mapping stimulated onto control PBMCs, 17.6× 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/). On a 64-thread workstation (0.4.0, 5 repeats, CPU governor performance), best-vs-best core-workflow speed-up ranges from 1.20× (PBMC 3k, 2,700 cells) to 16.70× (synthetic 200k cells), including 10.28× on PBMC 68k (9.13 s with CREST vs 210 s with scanpy at 64 threads, 93.8 s at scanpy's own best of 8 threads), with 1.6×–4.7× less memory. Comparing at matched 64 threads overstates CREST's advantage on larger datasets, since scanpy slows down at high thread counts (it's 2.2× slower at 64 threads than at its own best of 8, on PBMC 68k). CREST is not faster for seurat_v3 HVG selection (about 2× slower above 10k cells) or for PCA and UMAP on very small datasets (PBMC 3k). Full tables, including every step where CREST loses: docs/benchmarks.md. 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.4.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.4.0
File Size Uploaded
crest_sc-0.4.0.tar.gz 703.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for crest-sc 0.4.0
File
crest_sc-0.4.0-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details
crest_sc-0.4.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
crest_sc-0.4.0-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
crest_sc-0.4.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
crest_sc-0.4.0-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
crest_sc-0.4.0-cp310-abi3-musllinux_1_2_armv7l.whl CPython 3.10 abi3 Linux musl 1.2+ ARMv7l Details
crest_sc-0.4.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
crest_sc-0.4.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.4.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-32 Details
crest_sc-0.4.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
crest_sc-0.4.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
crest_sc-0.4.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
crest_sc-0.4.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 19.7 MB

Release files / crest_sc-0.4.0.tar.gz

Download URL crest_sc-0.4.0.tar.gz
Size 703.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a9ea7efaa2d904370b7bba71d76f23c02cf82152caafb9757233e5f62f6d66b4
BLAKE2b-256 checksum
How to use checksums
82e0b39e5f9b4e960b2cb2d273ba596b6302e242ca5e11c11210dd987dcd49bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-win_arm64.whl

Download URL crest_sc-0.4.0-cp310-abi3-win_arm64.whl
Size 1.2 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
be0edf53b8dcbfd60fe29e2f057b3c584e5467c2d56c73f01ede16f63d9b40ea
BLAKE2b-256 checksum
How to use checksums
3f9bc73d3317b0f7d187c78cd697dcaffbd4a9987a4324916f665eda4c7d96b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-win_amd64.whl

Download URL crest_sc-0.4.0-cp310-abi3-win_amd64.whl
Size 1.5 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
7edd1cbc1c192eef8ca1c8fc90ca4abd7327abc4e9c4088c337a1ea7cce17b6f
BLAKE2b-256 checksum
How to use checksums
ee71c85598671a8046af366bbf7d4bcdcf7558d35100dbc351ef2f1e3ded85e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-win32.whl

Download URL crest_sc-0.4.0-cp310-abi3-win32.whl
Size 1.0 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
e030f853653b5fd290829c4fdeae329cb8a797ed53460eaea0f6b2c84f051ef6
BLAKE2b-256 checksum
How to use checksums
a42d5fb1e3a586f1dd136ddaa281500c499ea952d9e3258e459890de3ef8030a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL crest_sc-0.4.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
47999f7bd86f073ded17d1eef5ddde5ac15d9698e689258e51944c0519287e08
BLAKE2b-256 checksum
How to use checksums
442f1fb1a75f44c84fa08c801736665c0ae8885ed50940ed6a6ef4d4be82d794
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-musllinux_1_2_i686.whl

Download URL crest_sc-0.4.0-cp310-abi3-musllinux_1_2_i686.whl
Size 1.7 MB
Tags CPython 3.10 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
ccab095afd582950dbc87c5bc81dc353da88f04f982bf32f08093e28c7be7607
BLAKE2b-256 checksum
How to use checksums
3e853b8a207aaabd84a0e536f2809781ed96ea73a5b31ecb3c0e8d0066d138c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-musllinux_1_2_armv7l.whl

Download URL crest_sc-0.4.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
2955f24a9d3637916edb2c478f91cb376a468c11ea55981d82301df70ec9ade2
BLAKE2b-256 checksum
How to use checksums
eac1e381bfcc12d67aaf03506942a433f920422459bfa8b506e5bc2aa0be9414
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL crest_sc-0.4.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 1.7 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
ec9b7caef4e88a62700af1c01cb6bdef1293a0090ff2a246691d163a4c9472cb
BLAKE2b-256 checksum
How to use checksums
d23e16817aa2533a42977f9d7363fc0c3439c095b41916ded6e5ca0d07e12584
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL crest_sc-0.4.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.8 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
5c6ee616cab4f938917d37fad23a38ff4dd08d027d2c8352e4e11bcc6362ec59
BLAKE2b-256 checksum
How to use checksums
17cf35d577ee048178c269556e1c67619e76276e7b77c39e88e176feb620957e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL crest_sc-0.4.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
6588d6e4db65ac952b51d4bf9229a2f2da33167d8b8b3f4b379b529204cd99d6
BLAKE2b-256 checksum
How to use checksums
9bc97e5709d4b84c3e14d972a22668bce115444607986737d9140d1e937dde52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL crest_sc-0.4.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
2167c67c11c1844c675fcb801e796c6f6b6f567dd568d227ab4b1a6b64570cfb
BLAKE2b-256 checksum
How to use checksums
f8aeec04bcb339d5bb38443b253feb89d5ce0239020d8359994760da87a83214
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL crest_sc-0.4.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
2e1b4a224d821ec5c2975ee59f56f39ab56b0c927b83ba257dcc38398d4d484a
BLAKE2b-256 checksum
How to use checksums
a3c5415cbd0d8394f074892693b270f82317c51aeccfa761075de42ee7b074bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL crest_sc-0.4.0-cp310-abi3-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2cc3650f191ff511441ac490ac13239e97cb75371a74b72037b10fbf4bb3ef3e
BLAKE2b-256 checksum
How to use checksums
0838c92570729b911c93ddea6ec9e4b4672dbcc9408486da7132320292c34d35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL crest_sc-0.4.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
f04ca70ffa24c05da81999dadadddc27ad192295a0f518f6f2caee399cb0eebc
BLAKE2b-256 checksum
How to use checksums
472850fafbe33866f26eec844cfa54bbec91bc3791948910d5849f93ce26ebc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.4.0 This release

14 release files

0.3.0

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