scverse / scverse/rustar-aligner
docs: add DEPENDENCIES.md recording accepted and declined crates
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 75
- Forks
- 7
- Avg merge
- 8m
- Merged PRs (30d)
- 1
Description
CONTRIBUTING.md:58 requires that a new dependency, especially a non-Rust one, be raised in an
issue before the PR. That rule covers the decision. What it does not cover is the record: today
the justifications live in comments in Cargo.toml (good ones, for flate2's zlib-rs backend
and for mimalloc) and the rejections live nowhere at all. So a crate that was considered and
turned down in issue #N gets re-proposed six months later and re-litigated from scratch.
Proposal: a DEPENDENCIES.md at the repo root with two tables and one list.
- Active runtime dependencies — crate, version range, license, what uses it, why it earns its
place. Seeded from the comments already inCargo.toml, which are the best material here. - Dev-only dependencies — same shape, lower bar (nothing ships).
- Considered and declined — crate, date, reason, link to the deciding issue.
Declined list, from the August 2026 survey
Draft content for section 3, to be confirmed in the sibling issues:
- Alternative aligners —
block-aligner0.5.1(adaptive SIMD affine-gap, 5–10x over prior
methods on its paper's datasets),ksw2rs,parasailors. Faithfulness to STAR's scoring,
extension and tie-breaks is the product; an aligner that computes alignments differently, even
better, is a divergence. - k-mer / minimizer / sketching crates —
simd-minimizers,minimizer-iter,
minimizer-queue,seq-hash,sourmash,nthash. STAR seeds by MMP search in the suffix
array; sketching changes which seeds exist. rust-htslib— brings htslib as a system C dependency;noodlesalready covers
SAM/BAM/BGZF with a self-contained build across the five supported platforms.rust-bio— broad toolkit, slower readers (allocations, copying, UTF-8 validation), few
pieces needed.- Interval libraries —
superintervals,coitrees,rust-lapper; see the sibling issue,
including their non-standard license flags. - Succinct / rank-select libraries —
sucds,vers-vecs,sux,bitm. The packed index
layout is dictated by STAR's format and there is no rank/select query need. rkyv— the index layout is externally specified, not a serialization of our own types.
Checklist
- Write
DEPENDENCIES.mdwith the three sections - Seed section 1 from the existing
Cargo.tomlcomments, then trim the comments to a pointer - Link it from
CONTRIBUTING.mdnext to the "new dependencies need prior discussion" rule - Backfill the decided issues (#162 and the siblings of this one) into section 3 as they close
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the dependency comments in Cargo.toml, the rule at CONTRIBUTING.md:58, issue #162, and the sibling issues named in the proposal. Create the root DEPENDENCIES.md with active, dev-only, and considered-and-declined sections; trim Cargo.toml comments to point to it, link it from CONTRIBUTING.md, and backfill decided issues as they close.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100