[package] name = "lsm" version = "0.4.1" authors = ["Kai Mast "] edition = "2021" repository = "https://github.com/kaimast/lsm-rs" description = "An implementation of log-structured merge trees in pure Rust" license = "MIT" readme = "README.md" keywords = ["storage", "database", "async"] [dependencies] lru = "0.12" parking_lot = "0.12" memmap2 = "0.9" byte-slice-cast = "1" zerocopy = { version="0.7", features=["derive"] } log = "0.4" futures = "0.3" snap = { version="1", optional=true } async-trait = "0.1" cfg-if = "1" tracing = { version="0.1", default-features=false, features=["attributes"] } csv = "1" tokio-condvar = { version="0.3", features=["parking_lot"] } tokio-uring = { version="0.5", optional=true } tokio-uring-executor = { package="kioto-uring-executor", version="0.1", optional=true } bloomfilter = { version="1", optional=true } [dependencies.tokio] version="1" default-features=false features=["io-util", "sync", "macros", "tracing"] [dev-dependencies] clap = { version="4", features=["derive"] } env_logger = "0.11" tempfile = "3" tracing-tracy = "0.11" tokio = { version="1", default-features=false, features=["rt-multi-thread"] } tracing-subscriber = { version="0.3", default-features=false } [lib] path = "src/lib.rs" [features] default = ["snappy-compression", "bloom-filters"] snappy-compression = ["dep:snap"] wisckey = [] bloom-filters = ["dep:bloomfilter"] async-io = ["dep:tokio-uring", "dep:tokio-uring-executor"] [[test]] name = "basic" path = "tests/basic.rs" [[test]] name = "reopen" path = "tests/reopen.rs" [[example]] name = "lsm-benchmark" path = "benchmarks/async.rs" [workspace] members = ["sync"]