[package] name = "concread" version = "0.5.3" authors = ["William Brown "] edition = "2021" description = "Concurrently Readable Data-Structures for Rust" documentation = "https://docs.rs/concread/latest/concread/" homepage = "https://github.com/kanidm/concread/" repository = "https://github.com/kanidm/concread/" readme = "README.md" keywords = [ "concurrency", "lru", "mvcc", "copy-on-write", "transactional-memory", ] categories = ["data-structures", "memory-management", "caching", "concurrency"] license = "MPL-2.0" [lib] name = "concread" path = "src/lib.rs" [features] default = ["asynch", "ahash", "ebr", "maps", "arcache-is-hashtrie"] # Features to add/remove contents. ahash = ["dep:ahash"] arcache = ["maps", "lru", "crossbeam-queue"] asynch = ["tokio"] ebr = ["crossbeam-epoch"] maps = ["crossbeam-utils", "smallvec"] tcache = [] # Internal features for tweaking some align/perf behaviours. dhat-heap = ["dep:dhat"] skinny = [] hashtrie_skinny = [] arcache-is-hashmap = ["arcache"] arcache-is-hashtrie = ["arcache"] simd_support = [] [dependencies] ahash = { version = "0.8", optional = true } crossbeam-utils = { version = "0.8.12", optional = true } crossbeam-epoch = { version = "0.9.11", optional = true } crossbeam-queue = { version = "0.3.6", optional = true } dhat = { version = "0.3.3", optional = true } lru = { version = "0.12", optional = true } serde = { version = "1.0", optional = true } smallvec = { version = "1.4", optional = true } sptr = "0.3" arc-swap = "1.0" tokio = { version = "1", features = ["sync"], optional = true } tracing = "0.1" [dev-dependencies] criterion = { version = "0.3", features = ["html_reports"] } rand = "0.8" tracing-subscriber = { version = "0.3", features = [ "env-filter", "std", "fmt", ] } uuid = "1.0" function_name = "0.3" serde_json = "1.0" tokio = { version = "1", features = ["rt", "macros"] } proptest = "1.0.0" [[bench]] name = "hashmap_benchmark" harness = false [[bench]] name = "arccache" harness = false required-features = ["tcache"]