1#![deny(rust_2018_idioms)]
2#![doc(
3 html_logo_url = "https://raw.githubusercontent.com/z-galaxy/zbus/9f7a90d2b594ddc48b7a5f39fda5e00cd56a7dfb/logo.png"
4)]
5#![doc = include_str!("../README.md")]
6#![doc(test(attr(
7 warn(unused),
8 deny(warnings),
9 allow(dead_code),
10 allow(unused_extern_crates),
12)))]
13
14#[cfg(doctest)]
15mod doctests {
16 doc_comment::doctest!("../../README.md");
18 doc_comment::doctest!("../../book/src/client.md");
20 doc_comment::doctest!("../../book/src/concepts.md");
21 #[cfg(feature = "p2p")]
23 doc_comment::doctest!("../../book/src/connection.md");
24 doc_comment::doctest!("../../book/src/contributors.md");
25 doc_comment::doctest!("../../book/src/introduction.md");
26 doc_comment::doctest!("../../book/src/service.md");
27 #[cfg(feature = "blocking-api")]
28 doc_comment::doctest!("../../book/src/blocking.md");
29 doc_comment::doctest!("../../book/src/faq.md");
30}
31
32#[cfg(all(not(feature = "async-io"), not(feature = "tokio")))]
33mod error_message {
34 #[cfg(windows)]
35 compile_error!(
36 "Either \"async-io\" (default) or \"tokio\" must be enabled. On Windows \"async-io\" is (currently) required for UNIX socket support"
37 );
38
39 #[cfg(not(windows))]
40 compile_error!("Either \"async-io\" (default) or \"tokio\" must be enabled.");
41}
42
43#[cfg(all(
44 any(feature = "vsock", feature = "tokio-vsock"),
45 not(target_os = "linux")
46))]
47compile_error!("The \"vsock\" and \"tokio-vsock\" features are only supported on Linux.");
48
49#[cfg(windows)]
50mod win32;
51
52mod dbus_error;
53pub use dbus_error::*;
54
55mod error;
56pub use error::*;
57
58pub mod address;
59pub use address::Address;
60
61mod guid;
62pub use guid::*;
63
64pub mod message;
65pub use message::Message;
66
67pub mod connection;
68pub use connection as conn;
70pub use connection::Connection;
71#[deprecated(
72 since = "5.0.0",
73 note = "Please use `connection::AuthMechanism` instead"
74)]
75pub use connection::handshake::AuthMechanism;
76
77mod message_stream;
78pub use message_stream::*;
79mod abstractions;
80pub use abstractions::*;
81
82pub mod match_rule;
83pub use match_rule::{MatchRule, OwnedMatchRule};
84
85pub mod proxy;
86pub use proxy::Proxy;
87
88pub mod object_server;
89pub use object_server::ObjectServer;
90
91mod utils;
92pub use utils::*;
93
94#[macro_use]
95pub mod fdo;
96
97#[cfg(feature = "blocking-api")]
98pub mod blocking;
99
100pub use zbus_macros::{DBusError, interface, proxy};
101
102extern crate self as zbus;
104
105#[doc(hidden)]
107pub mod export {
108 pub use async_trait;
109 pub use futures_core;
110 pub use ordered_stream;
111 pub use serde;
112}
113
114pub use zbus_names as names;
115pub use zvariant;