bsuccinct-rs
bsuccinct-rs copied to clipboard
Rust libraries and programs focused on succinct data structures
Succinct data structures and other Rust libraries and programs by Piotr Beling.
Included libraries:
-
ph
(crate, doc) - minimal perfect hash functions (FMPH and FMPHGO); -
csf
(crate, doc) - compressed static functions (maps); -
cseq
(crate, doc) - compact sequences (new and not well tested yet); -
minimum_redundancy
(crate, doc) - encode and decode data with binary or non-binary Huffman coding; -
fsum
(crate, doc) - calculate accurate sum of floats; -
bitm
(crate, doc) - bit and bitmap manipulation; -
binout
(crate, doc) - binary encoding, decoding, serialization, deserialization; -
dyn_size_of
(crate, doc) - report approximate amount of memory consumed by variables, including the memory allocated on heap, -
butils
(crate, doc) - (internal) utilities shared by software included in BSuccinct.
Included programs:
-
mphf_benchmark
(crate, doc) - benchmarking minimal perfect hash functions, -
csf_benchmark
(crate, doc) - benchmarking compressed static functions, -
cseq_benchmark
(crate, doc) - benchmarking compact sequences, -
coding_benchmark
(crate, doc) - benchmarking Huffman coding crates.
Everything is dual-licensed under Apache 2.0 or MIT.
Bibliography
When using bsuccinct
for research purposes, please cite the following paper:
- Piotr Beling, BSuccinct: Rust libraries and programs focused on succinct data structures, SoftwareX, Volume 26, 2024, 101681, ISSN 2352-7110, https://doi.org/10.1016/j.softx.2024.101681
Installation
Programs can be compiled and installed from sources. To do this, a Rust compiler is needed.
The easiest way to obtain the compiler along with other necessary tools (like cargo
) is
to use rustup.
Please follow the instructions at https://www.rust-lang.org/tools/install.
Installing rust programs
Once Rust is installed, to compile and install a program from sources and with native optimizations, just execute:
RUSTFLAGS="-C target-cpu=native" cargo install <program_name>
for example
RUSTFLAGS="-C target-cpu=native" cargo install mphf_benchmark