pombredanne / succinct-rs

Succinct Data Structures for Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Succinct Data Structures for Rust

Build Status Crates.io License: MIT License: Apache 2.0

This library is an early work in progress. So far we have:

  • integer vectors with arbitrary-sized (1- to 64-bit) elements;
  • bit vectors and bit buffers,
  • a variety of universal codes,
  • constant-time rank queries; and
  • O(lg lg n)-time select queries based on binary search over ranks.

Usage

It’s on crates.io, so you can add

[dependencies]
succinct = "0.4.1"

to your Cargo.toml and

extern crate succinct;

to your crate root.

Credits

  • IntVec borrows some implementation techniques from nbitsvec. The main difference is that nbitsvec uses a typenum to put the element size (in bits) as a parameter to the vector type. Also, nbitsvec is likely to be faster.

  • Some of the API is inspired by SDSL, a C++ succinct data structures library. It’s much more complete than succinct, and probably more correct and faster too.

About

Succinct Data Structures for Rust

License:Apache License 2.0


Languages

Language:Rust 99.0%Language:Shell 0.6%Language:Makefile 0.4%