[package]
name = "d-engine-server"
version.workspace = true
edition.workspace = true
authors.workspace = true
description = "Production-ready Raft consensus engine server and runtime"
homepage.workspace = true
repository.workspace = true
license.workspace = true
keywords = ["raft", "consensus", "distributed-systems", "async"]
categories = ["asynchronous", "concurrency", "network-programming"]
publish = true
[package.metadata.docs.rs]
features = ["rocksdb", "watch"]
rustdoc-args = ["--cfg", "docsrs"]
[package.metadata.release]
tag = false
[features]
rocksdb = ["dep:rocksdb"]
watch = ["d-engine-core/watch"]
[dependencies]
d-engine-proto = { workspace = true }
d-engine-core = { workspace = true }
d-engine-client = { workspace = true }
tokio = { workspace = true }
tonic = { workspace = true }
bytes = { workspace = true }
serde = { workspace = true }
tracing = { workspace = true }
async-trait = "0.1"
tempfile = { workspace = true }
futures = { workspace = true }
prost = { workspace = true }
bincode = "1.3"
rocksdb = { version = "0.24.0", optional = true }
config = { version = "0.14.0", default-features = false, features = ["toml"] }
arc-swap = "1.7.1"
dashmap = "6.1"
tokio-util = "0.7.11"
tokio-stream = "0.1.16"
rcgen = { version = "0.13", features = ["pem"] }
crc32fast = "1.4.2"
http-body = "1.0"
http-body-util = "0.1.3"
tonic-health = "0.12.3"
parking_lot = "0.12.3"
crossbeam = "0.8"
crossbeam-skiplist = "0.1"
metrics = { version = "0.24", features = [] }
[dev-dependencies]
d-engine-core = { workspace = true, features = ["__test_support"] }
serial_test = "3.2.0"
temp-env = "0.3.6"
tracing-test = "0.2"
tokio-stream = "0.1.16"
uuid = { version = "1", features = ["v4"] }
tokio = { version = "1", features = ["test-util", "process"] }
criterion = { version = "0.5", features = ["html_reports", "async_tokio"] }
mockall = "0.12.1"
nanoid = "0.4.0"
astral-tokio-tar = "0.5"
async-compression = { version = "0.4", features = ["tokio", "gzip"] }
[[bench]]
name = "state_machine"
harness = false
required-features = ["watch"]
[[bench]]
name = "ttl"
harness = false
[[bench]]
name = "watch_overhead"
harness = false
required-features = ["watch", "rocksdb"]
[[bench]]
name = "lease_performance"
harness = false