https://github.com/laysakura/fst-rs
FST (Fast Succinct Trie) implementation in Rust
https://github.com/laysakura/fst-rs
fast-succinct-trie fst louds-ds rust surf trie
Last synced: about 1 month ago
JSON representation
FST (Fast Succinct Trie) implementation in Rust
- Host: GitHub
- URL: https://github.com/laysakura/fst-rs
- Owner: laysakura
- License: apache-2.0
- Created: 2019-05-09T02:06:40.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-09T19:43:17.000Z (almost 6 years ago)
- Last Synced: 2025-03-22T10:42:27.252Z (about 1 month ago)
- Topics: fast-succinct-trie, fst, louds-ds, rust, surf, trie
- Language: Rust
- Homepage: https://crates.io/crates/fst-rs
- Size: 3.66 MB
- Stars: 26
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# fst-rs
FST (Fast Succinct Trie) implementation in Rust.
[Master API Docs](https://laysakura.github.io/fst-rs/fst_rs/)
|
[Released API Docs](https://docs.rs/crate/fst-rs)
|
[Benchmark Results](https://laysakura.github.io/fst-rs/criterion/report/)
|
[Changelog](https://github.com/laysakura/fst-rs/blob/master/CHANGELOG.md)[](https://travis-ci.com/laysakura/fst-rs)
[](https://crates.io/crates/fst-rs)
[](https://crates.io/crates/fst-rs)
[](https://github.com/laysakura/fst-rs#rust-version-supports)
[](https://github.com/laysakura/fst-rs/blob/master/LICENSE-MIT)
[](https://github.com/laysakura/fst-rs/blob/master/LICENSE-APACHE)FST is a building block of SuRF (Succinct Range Filter).
SuRF and FST is first introduced in the [SIGMOD 2018 best paper](http://www.pdl.cmu.edu/PDL-FTP/Storage/surf_sigmod18.pdf).FST is a memory efficient and high performance trie.
FST is like LOUDS based trie (e.g. [trie-rs](https://github.com/laysakura/trie-rs)) but does not use pure LOUDS.
It instead uses LOUDS-DS (abbrev of LOUDS-Dense & LOUDS-Sparse), which uses bitmap-based encoding (fast but fat) for upper levels of a trie tree and LOUDS-based encoding (slow but memory-efficient) for lower levels.## Quickstart
To use fst-rs, add the following to your `Cargo.toml` file:
```toml
[dependencies]
fst-rs = "0.1" # NOTE: Replace to latest minor version.
```### Usage Overview
(TBD)## Features
(TBD)## Versions
fst-rs uses [semantic versioning](http://semver.org/spec/v2.0.0.html).Since current major version is _0_, minor version update might involve breaking public API change (although it is carefully avoided).
## Rust Version Supports
fst-rs is continuously tested with these Rust versions in Travis CI:
- 1.33.0
- Latest stable versionSo it expectedly works with Rust 1.33.0 and any newer versions.
Older versions may also work, but are not tested or guaranteed.
## Contributing
Any kind of pull requests are appreciated.
### Guidelines
- `README.md` is generated from `$ cargo readme` command. Do not manually update `README.md` but edit `src/lib.rs` and then `$ cargo readme > README.md`.
- Travis CI automatically does the following commit & push to your pull-requests:
- `$ cargo readme > README.md`
- `$ cargo fmt --all`## License
MIT OR Apache-2.0