[workspace]
members = ["fst_incremental_old", "fst_incremental_lab"]
[profile.release]
debug = true
[workspace.dependencies]
criterion = { version = "0.8", features = ["html_reports"] }
rand = "0.9"
[package]
name = "fst_incremental"
version = "1.0.2"
edition = "2024"
authors = ["Excerion Sun <dev@excsn.com>"]
description = "A thread-safe, updatable finite state set: dynamic insertions, deletions and queries over an immutable fst::Set fronted by a compact mutation buffer with amortized rebuilds."
license = "MPL-2.0"
readme = "README.md"
repository = "https://github.com/excsn/fst_incremental"
documentation = "https://docs.rs/fst_incremental"
keywords = ["fst", "finite-state-set", "dynamic-set", "updatable-fst", "string-set"]
categories = ["data-structures", "algorithms", "database-implementations"]
rust-version = "1.85"
autobenches = false
exclude = ["docs/**"]
[features]
default = ["serde"]
serde = ["dep:serde"]
[package.metadata.docs.rs]
all-features = true
[dependencies]
fst = "0.4"
memmap2 = "0.9.5"
once_cell = "1.18"
ouroboros = "0"
parking_lot = "0.12"
thiserror = "2.0"
serde = { version = "1", features = ["derive"], optional = true }
tempfile = "3"
[dev-dependencies]
criterion = { workspace = true }
rand = { workspace = true }
rmp-serde = "1"
[[bench]]
name = "amortized"
harness = false
[[bench]]
name = "insert_single"
harness = false
[[bench]]
name = "bulk_insert"
harness = false
[[bench]]
name = "remove_single"
harness = false
[[bench]]
name = "contains"
harness = false
[[bench]]
name = "stream_all"
harness = false
[[bench]]
name = "search_prefix"
harness = false
[[bench]]
name = "force_rebuild"
harness = false
[[bench]]
name = "load"
harness = false
[[bench]]
name = "concurrency"
harness = false