-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathCargo.toml
More file actions
92 lines (83 loc) · 2.88 KB
/
Copy pathCargo.toml
File metadata and controls
92 lines (83 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
[package]
name = "rosalind-bio"
version = "0.4.0"
edition = "2021"
rust-version = "1.83"
authors = ["Logan Nye <logannye@users.noreply.github.com>"]
description = "Deterministic, resource-governed per-locus genomics analyses with portable receipts and offline replay"
repository = "https://github.com/logannye/rosalind"
license = "MIT OR Apache-2.0"
keywords = ["genomics", "bioinformatics", "reproducibility", "workflow", "pileup"]
categories = ["science::bioinformatics", "algorithms"]
readme = "README.md"
documentation = "https://docs.rs/rosalind-bio"
# Keep the published .crate lean: source + licenses, not demo data / artifacts / docs.
exclude = [
"results/",
"docs/superpowers/",
"docs/findings/",
"examples/data/",
"tests/snapshots/",
"/.github/",
"/.cargo/",
"release/",
"benchmarks/giab/",
"scripts/release-publish.sh",
"scripts/post-publish-smoke.sh",
"scripts/stage-release.sh",
"scripts/verify-release-automation.py",
]
[workspace]
members = ["crates/receipt", "crates/build-info", "xtask"]
# The wasm-bindgen verifier is its own standalone crate (built via wasm-pack), kept
# out of this workspace so the normal build/test/clippy loop is unaffected.
exclude = ["crates/receipt-wasm"]
# Published as `rosalind-bio` (the bare `rosalind` crate is an unrelated, dormant
# 2016 package). The library and the installed binary stay named `rosalind`, so
# `use rosalind::...` and the `rosalind` CLI are unchanged.
[lib]
name = "rosalind"
path = "src/lib.rs"
[features]
default = []
contract-testkit = []
[[bin]]
name = "rosalind"
path = "src/main.rs"
[dependencies]
# Reproducibility receipt model + offline verification, factored into a leaf crate
# with no htslib (std + blake3 only) so the verifier can compile to wasm.
rosalind-receipt = { path = "crates/receipt", version = "0.3.0" }
# OS bindings (read-only mmap of large reference/index files; peak-RSS readout)
libc = "0.2"
# Fast hashing for the reproducibility receipts
blake3 = "=1.8.2"
# Transparent gzip/bgzf-sequential decompression for FASTA/FASTQ ingestion
flate2 = "1.0"
# Bit manipulation - compact rank/select bitvectors in the FM-index
bitvec = "1.0"
# Error handling
thiserror = "1.0"
anyhow = "1.0"
# Logging and tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# CLI
clap = { version = "4.5", features = ["derive"] }
# BAM/VCF output
rust-htslib = { version = "0.44", default-features = false, features = ["bzip2", "lzma"] }
# Canonical uncompressed Arrow IPC feature streams (pinned for byte stability).
arrow-array = "=55.2.0"
arrow-schema = "=55.2.0"
arrow-ipc = { version = "=55.2.0", default-features = false }
arrow-select = "=55.2.0"
[dev-dependencies]
proptest = "1.4"
[build-dependencies]
rosalind-build-info = { path = "crates/build-info", version = "0.1.0" }
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
[profile.bench]
inherits = "release"