sucds
contains some succinct data structures written in Rust.
So far, the following data structures are implemented. Most of them are yet another Rust ports of implementations of C++ Succinct library by Ottaviano. For a detailed description of each data structure, please see the respective documentation.
BitVector
- Bit vector in a plain format, supporting some utilities such as update, chunking, and predecessor queries.
CompactVector
- Compact vector in which each integer is represented in a fixed number of bits.
RsBitVector
- Rank/select data structure over bit vectors with Vigna's rank9 and hinted selection techniques.
DArray
- Constant-time select data structure over integer sets with the dense array technique by Okanohara and Sadakane.
EliasFano
- Compressed monotone sequence with Elias-Fano encoding.
EliasFanoList
- Compressed integer list with prefix-summed Elias-Fano encoding.
WaveletMatrix
- Space-efficient data structure providing myriad operations over integer sequences.
To use sucds
, depend on it in your Cargo manifest:
# Cargo.toml
[dependencies]
sucds = "0.4"
This library is designed to run on 64-bit machines.
The document can be compiled with the following command:
$ RUSTDOCFLAGS="--html-in-header katex.html" cargo doc --no-deps
This library is free software provided under MIT.