Survey item from August 2026, filed so the answer is on record. Expected outcome is decline
unless a profile says otherwise.
Candidates
| Crate |
Version |
License |
Note |
superintervals |
0.3.1 |
non-standard on crates.io |
Position-sorted superset index, SIMD counting |
coitrees |
0.4.0 |
non-standard on crates.io |
Static interval tree, van Emde Boas layout |
rust-lapper |
1.3.0 |
MIT |
Widely used, simple API |
The September 2025 interval benchmark puts superintervals fastest or tied across cases (1.25–1.44x
over COITrees as the polars-bio default), and notes rust-lapper collapsing ~25x on adversarial
datasets, which makes it risky as a general-purpose choice.
Why the default answer is no
Annotation and junction lookups here mirror STAR's own structures rather than being free choices:
src/quant/transcriptome.rs:151 builds an explicit sorted order for binary_search, and the
junction side is keyed maps plus STAR-shaped filtering (src/junction/). Swapping in a general
interval library would not just change speed, it would change what "overlap" means at the edges
(half-open vs closed, tie handling), which is exactly where faithfulness lives.
Two further blockers before any use: both superintervals and coitrees show a non-standard
license on crates.io, which must be resolved explicitly, and neither has been shown to be on a
hot path in this codebase.
Checklist
Survey item from August 2026, filed so the answer is on record. Expected outcome is decline
unless a profile says otherwise.
Candidates
superintervals0.3.1coitrees0.4.0rust-lapper1.3.0The September 2025 interval benchmark puts superintervals fastest or tied across cases (1.25–1.44x
over COITrees as the polars-bio default), and notes rust-lapper collapsing ~25x on adversarial
datasets, which makes it risky as a general-purpose choice.
Why the default answer is no
Annotation and junction lookups here mirror STAR's own structures rather than being free choices:
src/quant/transcriptome.rs:151builds an explicit sorted order forbinary_search, and thejunction side is keyed maps plus STAR-shaped filtering (
src/junction/). Swapping in a generalinterval library would not just change speed, it would change what "overlap" means at the edges
(half-open vs closed, tie handling), which is exactly where faithfulness lives.
Two further blockers before any use: both
superintervalsandcoitreesshow a non-standardlicense on crates.io, which must be resolved explicitly, and neither has been shown to be on a
hot path in this codebase.
Checklist
harness)