rust-lapper
This is a rust port of Brent Pendersen's nim-lapper. It has a few notable differences, mostly that the find and seek methods both return iterators, so all adaptor methods may be used normally.
This crate works well for interval data that does not include very long intervals that engulf a majority of other intervals. In comparisons against other intervals trees, it is twice as slow in the worst case scenario of an interval spanning the whole set of possible positions.
However, on more typical datasets, this crate is between 4-10x faster than other interval overlap methods.
Benchmarks
Benchmarks performed on a sub 100% hit rate dataset:
crate/method | mean time |
---|---|
rust_lapper/find | 11.886 us |
rust_lapper/seek | 3.1825 us |
nested_intervals/query_overlapping | 34.500 us |
bio/find | 30.664 |
Benchmarks with a whole set spanning interval:
crate/method | mean time |
---|---|
rust_lapper/find | 61.184 us |
rust_lapper/seek | 61.386 us |
nested_intervals/query_overlapping | 36.144 |
bio/find | 34.691 us |
Example
use ;
type Iv = ;