MCPcopy Create free account
hub / github.com/beling/bsuccinct-rs

github.com/beling/bsuccinct-rs @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,867 symbols 4,548 edges 106 files ⚖ MIT 467 documented · 25% updated 7d ago★ 1713 open issues

Browse by type

Functions 1,609 Types & classes 258
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Succinct data structures and other Rust libraries and programs by Piotr Beling.

Build Status License License

Included libraries: - ph (crate, doc) - minimal perfect hash functions (PHast, FMPH and FMPHGO); - csf (crate, doc) - compressed static functions (maps); - cseq (crate, doc) - compact sequences (like Elias-Fano); - minimum_redundancy (crate, doc) - encode and decode data with binary or non-binary Huffman coding; - bitm (crate, doc) - bit and bitmap manipulation; - seedable_hash (crate, doc) - seedable hashers, - binout (crate, doc) - binary encoding, decoding, serialization, deserialization; - fsum (crate, doc) - calculate accurate sum of floats; - dyn_size_of (crate, doc) - calculate 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

Platforms with 32-bit addressing

For portability, BSuccinct components compile and run on platforms with 32-bit addressing (like wasm32). However, they are optimized primarily with 64-bit CPUs in mind.

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Method 1,224
Function 385
Class 186
Interface 56
Enum 16

Languages

Rust100%
Python1%

Modules by API surface

bitm/src/bitvec.rs92 symbols
cseq/src/elias_fano.rs87 symbols
ph/src/fmph/gofunction.rs65 symbols
ph/src/fmph/function.rs64 symbols
ph/src/fmph/keyset.rs54 symbols
ph/src/phast/conf.rs51 symbols
bitm/src/rank_select/mod.rs50 symbols
internal/phast/src/optim.rs44 symbols
minimum_redundancy/src/lib.rs42 symbols
cseq/src/wavelet_matrix.rs42 symbols
bitm/src/rank_select/select.rs38 symbols
ph/src/phast/perfect.rs35 symbols

For agents

$ claude mcp add bsuccinct-rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page