Skip to main content

vortex_fsst/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4//! An array that uses the [Fast Static Symbol Table][fsst] compression scheme
5//! to compress string arrays.
6//!
7//! FSST arrays can generally compress string data up to 2x through the use of
8//! string tables. The string table is static for an entire array, and occupies
9//! up to 2048 bytes of buffer space. Thus, FSST is only worth reaching for when
10//! dealing with larger arrays of potentially hundreds of kilobytes or more.
11//!
12//! [fsst]: https://www.vldb.org/pvldb/vol13/p2649-boncz.pdf
13
14mod array;
15mod canonical;
16mod compress;
17mod compute;
18mod dfa;
19mod kernel;
20mod ops;
21mod rules;
22mod slice;
23#[cfg(feature = "_test-harness")]
24pub mod test_utils;
25#[cfg(test)]
26mod tests;
27
28pub use array::*;
29pub use compress::*;
30use vortex_array::session::ArraySessionExt;
31use vortex_session::VortexSession;
32
33/// Initialize FSST encoding in the given session.
34pub fn initialize(session: &VortexSession) {
35    session.arrays().register(FSST);
36    kernel::initialize(session);
37}