23 releases
0.8.1 | Sep 30, 2023 |
---|---|
0.8.0 | Jun 8, 2023 |
0.7.0 | Mar 26, 2023 |
0.6.0 | Nov 23, 2022 |
0.1.2 | Nov 28, 2021 |
#174 in Data structures
12,732 downloads per month
Used in 6 crates
(5 directly)
225KB
4K
SLoC
Succinct data structures in Rust
Sucds provides some succinct data structures written in Rust.
Documentation
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
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
lib.rs
:
Succinct data structures in Rust
Sucds is a collection of succinct data structures, powerful tools to store a variety of data structures in compressed space and quickly perform operations on the compressed data.
Design policy
Thus far, many succinct data structures and their implementation techniques have been developed for a wide range of applications. To handle them in a single crate, we set up several design policies:
-
Maintain interface consistency: Sucds will adhere to a unified interface, facilitating the integration and replacement of data structures.
-
Preserve identity: Rather than offering every possible succinct data structure, Sucds will focus on providing only those that hold a competitive advantage over others.
-
Ensure safety: To avoid potential risks, Sucds will refrain from using unsafe instructions typically reserved for extremely low-level programming.
-
Remain Rust-centric: Sucds will consistently utilize Pure Rust in its implementation.
Data structures
The data structures provided in this crate are categorized as follows:
The descriptions for each category are available in the corresponding module.
Throughout this document, we write $\log_2
$ with $\lg
$.
Serialization/deserialization
All the data structures can be serialized or deserialized through the Serializable
trait.
Limitation
This library is designed to run on 64-bit machines.
Dependencies
~200–280KB