zbus 3.15.2

API for D-Bus communication
Documentation
[package]
name = "zbus"
version = "3.15.2"
authors = ["Zeeshan Ali Khan <zeeshanak@gnome.org>"]
edition = "2018"
rust-version = "1.64"

description = "API for D-Bus communication"
repository = "https://github.com/dbus2/zbus/"
keywords = ["D-Bus", "DBus", "IPC"]
license = "MIT"
categories = ["os::unix-apis"]
readme = "README.md"

[features]
default = ["async-io"]
xml = ["serde-xml-rs"]
gvariant = ["zvariant/gvariant"]
uuid = ["zvariant/uuid"]
url = ["zvariant/url"]
time = ["zvariant/time"]
chrono = ["zvariant/chrono"]
windows-gdbus = []
async-io = [
  "dep:async-io",
  "async-executor",
  "async-task",
  "async-lock",
  "async-fs",
  "blocking",
  "futures-util/io",
]
tokio = ["dep:tokio"]
vsock = ["dep:vsock", "dep:async-io"]
tokio-vsock = ["dep:tokio-vsock", "tokio"]

[dependencies]
byteorder = "1.4.3"
serde = { version = "1.0", features = ["derive"] }
serde_repr = "0.1.9"
zvariant = { path = "../zvariant", version = "3.15.0", default-features = false, features = [
  "enumflags2",
] }
zbus_names = { path = "../zbus_names", version = "2.6" }
zbus_macros = { path = "../zbus_macros", version = "=3.15.2" }
enumflags2 = { version = "0.7.7", features = ["serde"] }
serde-xml-rs = { version = "0.4.1", optional = true }
derivative = "2.2"
once_cell = "1.4.0"
async-io = { version = "1.12.0", optional = true }
futures-core = "0.3.25"
futures-sink = "0.3.25"
futures-util = { version = "0.3.25", default-features = false, features = [
  "sink",
  "std",
] }
async-lock = { version = "2.6.0", optional = true }
async-broadcast = "0.5.0"
async-executor = { version = "1.5.0", optional = true }
blocking = { version = "1.0.2", optional = true }
async-task = { version = "4.3.0", optional = true }
hex = "0.4.3"
ordered-stream = "0.2"
rand = "0.8.5"
sha1 = { version = "0.10.5", features = ["std"] }
event-listener = "2.5.3"
static_assertions = "1.1.0"
async-recursion = "1.0.0"
async-trait = "0.1.58"
async-fs = { version = "1.6.0", optional = true }
# FIXME: We should only enable process feature for Mac OS. See comment on async-process below for why we can't.
tokio = { version = "1.21.2", optional = true, features = [
  "rt",
  "net",
  "time",
  "fs",
  "io-util",
  "process",
  "sync",
  "tracing",
] }
tracing = "0.1.37"
vsock = { version = "0.3.0", optional = true }
tokio-vsock = { version = "0.3.3", optional = true }
quick-xml = { version = "0.27.1", features = [
  "serialize",
  "overlapped-lists",
], optional = true }
xdg-home = "1.0.0"

[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = [
  "handleapi",
  "iphlpapi",
  "memoryapi",
  "processthreadsapi",
  "sddl",
  "securitybaseapi",
  "synchapi",
  "tcpmib",
  "winbase",
  "winerror",
  "winsock2",
] }
uds_windows = "1.0.2"

[target.'cfg(unix)'.dependencies]
nix = { version = "0.26.0", default-features = false, features = [
  "socket",
  "uio",
  "user",
] }

[target.'cfg(target_os = "macos")'.dependencies]
# FIXME: This should only be enabled if async-io feature is enabled but currently
# Cargo doesn't provide a way to do that for only specific target OS: https://github.com/rust-lang/cargo/issues/1197.
async-process = "1.7.0"

[dev-dependencies]
doc-comment = "0.3.3"
futures-util = "0.3.25" # activate default features
ntest = "0.9.0"
test-log = { version = "0.2.11", features = [
  "trace",
], default-features = false }
tokio = { version = "1", features = [
  "macros",
  "rt-multi-thread",
  "fs",
  "io-util",
  "net",
  "sync",
] }
async-std = { version = "1.12.0", features = ["attributes"] }
tracing-subscriber = { version = "0.3.16", features = [
  "env-filter",
  "fmt",
  "ansi",
], default-features = false }
tempfile = "3.3.0"

[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu"]