Expand description
§Succinctly
High-performance succinct data structures for Rust.
This crate provides space-efficient data structures with fast rank and select operations, optimized for both x86_64 and ARM (NEON) architectures.
§Module Organization
bits- Bitvector with O(1) rank and O(log n) selecttrees- Succinct tree representations (balanced parentheses)json- JSON semi-indexing with SIMD accelerationjq- jq-style query language for JSON navigationdsv- High-performance CSV/TSV parsing with succinct indexingyaml- YAML semi-indexing (Phase 1: block style)
§Quick Start
use succinctly::{BitVec, RankSelect};
// Create a bitvector from u64 words
let words = vec![0b1010_1010_1010_1010u64; 8];
let bv = BitVec::from_words(words, 512);
// Query rank (count of 1-bits in [0, i))
assert_eq!(bv.rank1(8), 4);
// Query select (position of k-th 1-bit)
assert_eq!(bv.select1(0), Some(1));§Features
Popcount strategies (mutually exclusive, for benchmarking):
- Default: Uses Rust’s
count_ones()which auto-vectorizes simd- Use explicit SIMD intrinsics (NEON on ARM, POPCNT on x86)portable-popcount- Use portable bitwise algorithm (no intrinsics)
Other features:
serde- Enable serialization/deserialization support
Re-exports§
pub use bits::BitVec;pub use bits::popcount_word;pub use bits::popcount_words;pub use bits::RankDirectory;pub use bits::SelectIndex;pub use trees::BalancedParens;pub use dsv::Dsv;pub use dsv::DsvConfig;pub use dsv::DsvCursor;pub use dsv::DsvIndex;
Modules§
- binary
- Binary serialization utilities. Binary serialization for succinct data structures.
- bits
- Bitvector implementations with rank and select support. Bitvector implementations with rank and select support.
- dsv
- High-performance DSV (CSV/TSV) parsing with succinct indexing. High-performance DSV (Delimiter-Separated Values) parsing with succinct indexing.
- jq
- jq-style query language for JSON navigation. jq-like query expressions for JSON navigation.
- json
- JSON semi-indexing with SIMD acceleration. JSON semi-indexing for succinct JSON parsing.
- trees
- Succinct tree representations. Succinct tree representations.
- yaml
- YAML semi-indexing (Phase 1: YAML-lite). YAML semi-indexing for succinct YAML parsing (Phase 4: Anchors & Aliases).
Structs§
- Config
- Configuration for building indices.
Traits§
- Rank
Select - Trait for rank/select operations on bitvectors.
Functions§
- select_
in_ word - Select the k-th set bit (0-indexed) in a 64-bit word.