[package]
name = "sassi"
description = "Typed in-memory pool with composable predicate algebra and cross-runtime trait queries."
readme = "../README.md"
keywords = ["cache", "lru", "predicate", "query", "rust"]
categories = ["caching", "data-structures"]
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
rust-version.workspace = true
[features]
default = ["serde", "runtime-tokio"]
serde = ["dep:serde", "dep:serde_json"]
runtime-tokio = []
runtime-wasm = ["dep:wasm-bindgen-futures", "dep:gloo-timers"]
watermark-time = ["dep:time"]
watermark-chrono = ["dep:chrono"]
[dependencies]
tokio = { workspace = true }
futures = { workspace = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
dashmap = { workspace = true }
arc-swap = { workspace = true }
im = { workspace = true }
fastrand = { workspace = true }
tracing = { workspace = true }
async-trait = { workspace = true }
thiserror = { workspace = true }
sassi-macros = { path = "../sassi-macros", version = "0.1.0-beta.1" }
inventory = { workspace = true }
web-time = { workspace = true }
wasm-bindgen-futures = { workspace = true, optional = true }
gloo-timers = { workspace = true, optional = true }
time = { workspace = true, optional = true }
chrono = { workspace = true, optional = true }
[dev-dependencies]
tokio = { version = "1.52", default-features = false, features = ["sync", "rt", "time", "macros", "test-util"] }
proptest = { workspace = true }
tempfile = "3"
trybuild = { workspace = true }
criterion = { workspace = true }
[[bench]]
name = "punnu_bench"
harness = false