1[package]
2name = "zbus"
3version = "3.15.2"
4authors = ["Zeeshan Ali Khan <zeeshanak@gnome.org>"]
5edition = "2018"
6rust-version = "1.64"
7
8description = "API for D-Bus communication"
9repository = "https://github.com/dbus2/zbus/"
10keywords = ["D-Bus", "DBus", "IPC"]
11license = "MIT"
12categories = ["os::unix-apis"]
13readme = "README.md"
14
15[features]
16default = ["async-io"]
17xml = ["serde-xml-rs"]
18gvariant = ["zvariant/gvariant"]
19uuid = ["zvariant/uuid"]
20url = ["zvariant/url"]
21time = ["zvariant/time"]
22chrono = ["zvariant/chrono"]
23windows-gdbus = []
24async-io = [
25 "dep:async-io",
26 "async-executor",
27 "async-task",
28 "async-lock",
29 "async-fs",
30 "blocking",
31 "futures-util/io",
32]
33tokio = ["dep:tokio"]
34vsock = ["dep:vsock", "dep:async-io"]
35tokio-vsock = ["dep:tokio-vsock", "tokio"]
36
37[dependencies]
38byteorder = "1.4.3"
39serde = { version = "1.0", features = ["derive"] }
40serde_repr = "0.1.9"
41zvariant = { path = "../zvariant", version = "3.15.0", default-features = false, features = [
42 "enumflags2",
43] }
44zbus_names = { path = "../zbus_names", version = "2.6" }
45zbus_macros = { path = "../zbus_macros", version = "=3.15.2" }
46enumflags2 = { version = "0.7.7", features = ["serde"] }
47serde-xml-rs = { version = "0.4.1", optional = true }
48derivative = "2.2"
49once_cell = "1.4.0"
50async-io = { version = "1.12.0", optional = true }
51futures-core = "0.3.25"
52futures-sink = "0.3.25"
53futures-util = { version = "0.3.25", default-features = false, features = [
54 "sink",
55 "std",
56] }
57async-lock = { version = "2.6.0", optional = true }
58async-broadcast = "0.5.0"
59async-executor = { version = "1.5.0", optional = true }
60blocking = { version = "1.0.2", optional = true }
61async-task = { version = "4.3.0", optional = true }
62hex = "0.4.3"
63ordered-stream = "0.2"
64rand = "0.8.5"
65sha1 = { version = "0.10.5", features = ["std"] }
66event-listener = "2.5.3"
67static_assertions = "1.1.0"
68async-recursion = "1.0.0"
69async-trait = "0.1.58"
70async-fs = { version = "1.6.0", optional = true }
71# FIXME: We should only enable process feature for Mac OS. See comment on async-process below for why we can't.
72tokio = { version = "1.21.2", optional = true, features = [
73 "rt",
74 "net",
75 "time",
76 "fs",
77 "io-util",
78 "process",
79 "sync",
80 "tracing",
81] }
82tracing = "0.1.37"
83vsock = { version = "0.3.0", optional = true }
84tokio-vsock = { version = "0.3.3", optional = true }
85quick-xml = { version = "0.27.1", features = [
86 "serialize",
87 "overlapped-lists",
88], optional = true }
89xdg-home = "1.0.0"
90
91[target.'cfg(windows)'.dependencies]
92winapi = { version = "0.3", features = [
93 "handleapi",
94 "iphlpapi",
95 "memoryapi",
96 "processthreadsapi",
97 "sddl",
98 "securitybaseapi",
99 "synchapi",
100 "tcpmib",
101 "winbase",
102 "winerror",
103 "winsock2",
104] }
105uds_windows = "1.0.2"
106
107[target.'cfg(unix)'.dependencies]
108nix = { version = "0.26.0", default-features = false, features = [
109 "socket",
110 "uio",
111 "user",
112] }
113
114[target.'cfg(target_os = "macos")'.dependencies]
115# FIXME: This should only be enabled if async-io feature is enabled but currently
116# Cargo doesn't provide a way to do that for only specific target OS: https://github.com/rust-lang/cargo/issues/1197.
117async-process = "1.7.0"
118
119[dev-dependencies]
120doc-comment = "0.3.3"
121futures-util = "0.3.25" # activate default features
122ntest = "0.9.0"
123test-log = { version = "0.2.11", features = [
124 "trace",
125], default-features = false }
126tokio = { version = "1", features = [
127 "macros",
128 "rt-multi-thread",
129 "fs",
130 "io-util",
131 "net",
132 "sync",
133] }
134async-std = { version = "1.12.0", features = ["attributes"] }
135tracing-subscriber = { version = "0.3.16", features = [
136 "env-filter",
137 "fmt",
138 "ansi",
139], default-features = false }
140tempfile = "3.3.0"
141
142[package.metadata.docs.rs]
143all-features = true
144targets = ["x86_64-unknown-linux-gnu"]
145