20 releases (5 breaking)

0.6.0 Nov 23, 2022
0.5.0 Oct 18, 2022
0.4.0 Apr 23, 2022
0.3.1 Apr 4, 2022
0.1.2 Nov 28, 2021

#146 in Data structures

Download history 3/week @ 2022-10-09 32/week @ 2022-10-16 123/week @ 2022-10-23 119/week @ 2022-10-30 89/week @ 2022-11-06 136/week @ 2022-11-13 195/week @ 2022-11-20 101/week @ 2022-11-27 308/week @ 2022-12-04 530/week @ 2022-12-11 370/week @ 2022-12-18 367/week @ 2022-12-25 397/week @ 2023-01-01 563/week @ 2023-01-08 622/week @ 2023-01-15 584/week @ 2023-01-22

2,182 downloads per month
Used in 3 crates (2 directly)

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.

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

~125KB