Skip to content

Dependency survey (Aug 2026): umbrella for the crate evaluations #201

Description

@BenjaminDEMAILLE

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

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

  1. 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.
  2. Determinism across thread counts. Output must not depend on --runThreadN, on hash seeds,
    or on an unspecified iteration order.
  3. Five platforms including Windows. A non-Rust dependency is a supply-chain and maintenance
    decision, per CONTRIBUTING.md.
  4. Measure before optimising. Several sub-issues are explicitly blocked on the benchmark
    harness, because there is no benches/ directory today.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests/issues that update a dependency file

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions