[package]
name = "dtmrs"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
rust-version.workspace = true
keywords.workspace = true
categories.workspace = true
description = "Distributed transaction manager in Rust: SAGA / TCC / two-phase messaging / XA / workflow, over HTTP and gRPC, embeddable as a library"
readme = "README.md"
[[bin]]
name = "dtmrs"
path = "src/main.rs"
required-features = ["server"]
[features]
default = ["server"]
server = [
"dep:dtmrs-server", "dep:dtmrs-store",
"dep:tokio", "dep:anyhow", "dep:tracing", "dep:tracing-subscriber",
"dep:axum", "dep:serde", "dep:serde_json",
]
grpc = ["server", "dep:tonic", "dtmrs-server/grpc"]
redis = ["server", "dtmrs-server/redis"]
barrier = ["dep:dtmrs-barrier"]
barrier-redis = ["barrier", "dtmrs-barrier/redis"]
xa = ["dep:dtmrs-xa"]
full = ["server", "grpc", "barrier", "barrier-redis", "xa", "redis"]
[dependencies]
dtmrs-core = { path = "../dtmrs-core", version = "0.5.0" }
dtmrs-server = { path = "../dtmrs-server", version = "0.5.0", optional = true, default-features = false }
dtmrs-store = { path = "../dtmrs-store", version = "0.5.0", optional = true }
dtmrs-barrier = { path = "../dtmrs-barrier", version = "0.5.0", optional = true }
dtmrs-xa = { path = "../dtmrs-xa", version = "0.5.0", optional = true }
tokio = { workspace = true, optional = true }
anyhow = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, optional = true }
axum = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
tonic = { workspace = true, optional = true }
[package.metadata.docs.rs]
all-features = true