joshieDo / sucds

Collection of succinct data structures in Rust

Home Page:https://docs.rs/sucds

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sucds: Succinct data structures in Rust

Documentation Crates.io License: MIT

sucds contains some succinct data structures written in Rust.

Data structures

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.

Usage

To use sucds, depend on it in your Cargo manifest:

# Cargo.toml

[dependencies]
sucds = "0.4"

Limitation

This library is designed to run on 64-bit machines.

Build docs

The document can be compiled with the following command:

$ RUSTDOCFLAGS="--html-in-header katex.html" cargo doc --no-deps

Licensing

This library is free software provided under MIT.

About

Collection of succinct data structures in Rust

https://docs.rs/sucds

License:MIT License


Languages

Language:Rust 99.0%Language:HTML 1.0%