[package]
edition = "2024"
rust-version = "1.85.0"
name = "serf-core"
version = "0.5.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A decentralized solution for service discovery and orchestration that is lightweight, highly available, and fault tolerant."
homepage = "https://github.com/al8n/serf"
readme = "README.md"
keywords = [
"gossip",
"service-discovery",
"cluster",
"membership",
"distributed",
]
categories = [
"network-programming",
"asynchronous",
"algorithms",
]
license = "MPL-2.0"
repository = "https://github.com/al8n/serf"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
arbitrary = [
"dep:arbitrary",
"memberlist-core/arbitrary",
"smol_str/arbitrary",
]
brotli = ["memberlist-core/brotli"]
crc32 = ["memberlist-core/crc32"]
default = ["metrics"]
encryption = [
"memberlist-core/encryption",
"serde",
"serde_json",
]
lz4 = ["memberlist-core/lz4"]
metrics = [
"memberlist-core/metrics",
"dep:metrics",
]
murmur3 = ["memberlist-core/murmur3"]
quickcheck = [
"dep:quickcheck",
"memberlist-core/quickcheck",
]
serde = [
"dep:serde",
"dep:humantime-serde",
"bitflags/serde",
"memberlist-core/serde",
"smol_str/serde",
"smallvec/serde",
"indexmap/serde",
]
snappy = ["memberlist-core/snappy"]
test = [
"memberlist-core/test",
"paste",
"tracing-subscriber",
"tempfile",
]
xxhash3 = ["memberlist-core/xxhash3"]
xxhash32 = ["memberlist-core/xxhash32"]
xxhash64 = ["memberlist-core/xxhash64"]
zstd = ["memberlist-core/zstd"]
[lib]
name = "serf_core"
path = "src/lib.rs"
[dependencies.arbitrary]
version = "1"
features = [
"derive",
"derive",
]
optional = true
default-features = false
[dependencies.arc-swap]
version = "1"
[dependencies.async-channel]
version = "2"
[dependencies.async-lock]
version = "3"
[dependencies.atomic_refcell]
version = "0.1"
[dependencies.auto_impl]
version = "1"
[dependencies.bitflags]
version = "2"
[dependencies.byteorder]
version = "1"
[dependencies.crossbeam-queue]
version = "0.3"
[dependencies.derive_more]
version = "2"
features = ["full"]
[dependencies.either]
version = "1"
[dependencies.futures]
version = "0.3"
features = ["default"]
default-features = false
[dependencies.humantime-serde]
version = "1"
optional = true
[dependencies.indexmap]
version = "2"
[dependencies.memberlist-core]
version = "0.8.1"
default-features = false
[dependencies.metrics]
version = "0.24"
optional = true
[dependencies.once_cell]
version = "1"
[dependencies.parking_lot]
version = "0.12"
features = ["send_guard"]
[dependencies.paste]
version = "1"
optional = true
[dependencies.pin-project]
version = "1"
[dependencies.quickcheck]
version = "1"
optional = true
default-features = false
[dependencies.rand]
version = "0.10"
[dependencies.regex]
version = "1"
[dependencies.scopeguard]
version = "1"
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.smallvec]
version = "1"
[dependencies.smol_str]
version = "^0.3.6"
[dependencies.tempfile]
version = "3"
optional = true
[dependencies.thiserror]
version = "2"
default-features = false
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"tracing-log",
]
optional = true
[dependencies.viewit]
version = "0.1.5"
[dev-dependencies.agnostic-lite]
version = "0.6"
features = ["tokio"]
[dev-dependencies.futures]
version = "0.3"
features = ["executor"]
default-features = false
[dev-dependencies.memberlist-core]
version = "0.8.1"
features = [
"quickcheck",
"arbitrary",
"test",
]
default-features = false
[dev-dependencies.paste]
version = "1"
[dev-dependencies.quickcheck]
version = "1"
default-features = false
[dev-dependencies.quickcheck_macros]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = ["full"]