sbits
Succinct data structures.
Dual-licensed under MIT or Apache-2.0.
Structures
| Structure | What it does |
|---|---|
BitVector |
Rank/select over bits in O(1)/O(log n) with Rank9 interleaved layout |
EliasFano |
Sorted integers in near-optimal space with O(1) access, O(1) avg successor |
PartitionedEliasFano |
Block-local Elias-Fano for clustered sequences |
WaveletTree |
Rank/select over arbitrary alphabets in O(log sigma) |
Quickstart
[]
= "0.2.0"
use BitVector;
use EliasFano;
// BitVector: rank, select, iterate
let bv = from_ones;
assert_eq!;
assert_eq!;
let ones: = bv.ones.collect;
assert_eq!;
// Elias-Fano: compressed sorted integers with successor/predecessor
let ef = new;
assert_eq!;
assert_eq!;
assert!;
// Iterate all values
let all: = ef.iter.collect;
assert_eq!;
Serialization
All structures support stable binary serialization:
use EliasFano;
let ef = new;
let bytes = ef.to_bytes;
let ef2 = from_bytes.unwrap;
assert_eq!;