15 releases

new 0.2.5 Jan 20, 2022
0.2.4 Jan 13, 2022
0.1.8 Dec 31, 2021
0.1.2 Nov 28, 2021

#230 in Data structures

Download history 49/week @ 2021-11-24 28/week @ 2021-12-01 9/week @ 2021-12-08 15/week @ 2021-12-22 203/week @ 2021-12-29 81/week @ 2022-01-05 48/week @ 2022-01-12 42/week @ 2022-01-19

374 downloads per month
Used in tongrams

MIT license

150KB
3K SLoC

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.2"

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.

Dependencies

~285–385KB