[package] name = "ruserf-core" version.workspace = true rust-version.workspace = true edition.workspace = true license.workspace = true description.workspace = true repository.workspace = true readme.workspace = true homepage.workspace = true keywords.workspace = true categories.workspace = true [features] default = ["metrics"] metrics = ["memberlist-core/metrics", "dep:metrics", "ruserf-types/metrics"] encryption = ["memberlist-core/encryption", "ruserf-types/encryption", "base64", "serde"] async-graphql = ["dep:async-graphql"] serde = [ "dep:serde", "dep:humantime-serde", "memberlist-core/serde", "ruserf-types/serde", "smol_str/serde", "smallvec/serde", "indexmap/serde", ] test = ["memberlist-core/test", "paste", "tracing-subscriber", "tempfile"] [dependencies] auto_impl = "1" atomic_refcell = "0.1" arc-swap = "1" async-lock = "3" async-channel = "2" async-graphql = { version = "7", optional = true } byteorder.workspace = true crossbeam-queue = "0.3" derive_more.workspace = true futures = { workspace = true, features = ["default"] } either = "1" indexmap.workspace = true once_cell = "1" # remove this dependency when [feature(lazy_cell)] is stabilized parking_lot = { version = "0.12", features = ["send_guard"] } pin-project = "1" rand.workspace = true regex = "1" scopeguard = "1" smol_str.workspace = true smallvec.workspace = true thiserror.workspace = true viewit.workspace = true memberlist-core.workspace = true ruserf-types.workspace = true metrics = { version = "0.22", optional = true } serde = { workspace = true, optional = true } humantime-serde = { workspace = true, optional = true } serde_json = "1" base64 = { version = "0.22", optional = true } # test features paste = { version = "1", optional = true } tracing-subscriber = { version = "0.3", optional = true, features = [ "env-filter", "tracing-log", ] } tempfile = { version = "3", optional = true } [dev-dependencies] agnostic-lite = { version = "0.3", features = ["tokio"] } tokio = { version = "1", features = ["full"] } futures = { workspace = true, features = ["executor"] } tempfile = "3" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"]