scverse / scverse/rustar-aligner
Dependency survey (Aug 2026): umbrella for the crate evaluations
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 75
- Forks
- 7
- Avg merge
- 8m
- Merged PRs (30d)
- 1
Description
Umbrella for the third-party crate survey run in August 2026. Each sub-issue is one dependency
question in the form CONTRIBUTING.md:58 asks for: raised in an issue before any PR, with the
reasoning written down.
Every sub-issue is expected to end in a written outcome, either "adopted, here is the
justification" or "declined, here is why", so that the same crate does not get re-surveyed in six
months. There is currently no place to write that down, which is itself one of the sub-issues.
Already covered elsewhere, deliberately not duplicated here
- #162 —
libsais(vendored C viacc) for suffix-array construction - #95 —
paraseqas an input option - #97 — parallel inputs / parallel FASTQ readers
- #197 —
hyalitefor CR4
Already in the tree, so not re-proposed
The survey turned up several crates that this project already uses, which is a good sign about the
existing dependency choices: memmap2, rustc-hash, libdeflater, tempfile, assert_cmd,
mimalloc (with an explicit rationale in Cargo.toml), flate2 on the zlib-rs backend, bstr,
caps-sa.
Sub-issues
| # | Subject | Blocked by |
|---|---|---|
| #207 | noodles 0.113 → 0.115, noodles-bgzf 0.49 → 0.51, plus the multithreaded BGZF writer question |
— |
| #202 | sufr / libsufr vs the caps-sa incumbent (sibling of #162) |
— |
| #203 | The rust-seq crates: packed-seq, simd-minimizers, seq-hash |
#204 |
| #204 | A benchmark harness (divan or criterion) — enabler for everything below | — |
| #205 | Portable SIMD crate vs the hand-rolled intrinsics in simd_scan.rs |
#204 |
| #206 | --limitBAMsortRAM aborts instead of spilling: external sort |
— |
| #208 | Interval-overlap crates | #204 |
| #209 | DEPENDENCIES.md recording accepted and declined crates |
— |
| #210 | Audit: does DashMap/HashMap iteration order reach any output? | — |
| #218 | Read other compressed input formats (bz2 / zstd / xz): niffler |
— |
Standing constraints for all of them
- Faithfulness to STAR is the product. A crate that changes which alignments are found, or the
order in which anything observable is emitted, is out regardless of its benchmarks. - Determinism across thread counts. Output must not depend on
--runThreadN, on hash seeds,
or on an unspecified iteration order. - Five platforms including Windows. A non-Rust dependency is a supply-chain and maintenance
decision, perCONTRIBUTING.md. - Measure before optimising. Several sub-issues are explicitly blocked on the benchmark
harness, because there is nobenches/directory today.
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 CONTRIBUTING.md:58 and the dependency rationale in Cargo.toml, then review the listed sub-issues and the existing simd_scan.rs reference. Confirm how the survey should record adopted or declined crates, including benchmark, determinism, platform, and STAR-faithfulness evidence. Done means the relevant evaluations have written outcomes and the dependency record is complete.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100