8个稳定版本
2.3.1 | 2021年12月16日 |
---|---|
2.3.0 | 2021年12月12日 |
2.2.0 | 2021年7月27日 |
2.1.0 | 2021年1月31日 |
1.1.0 | 2020年6月30日 |
#1187 in 异步
67 每月下载量
用于 2 crates
75KB
1.5K SLoC
dbus-async
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
dbus-async = "~2.3.1"
您必须指定要使用的Tokio运行时。
- 对于多线程,将以下内容添加到您的
Cargo.toml
[dependencies.tokio] version = " ~1.15.0" features = ["rt-multi-thread"]
- 对于单线程,将以下内容添加到您的
Cargo.toml
[dependencies.tokio] version = "~1.15.0" features = ["rt"]
示例
use dbus_async::DBus;
use dbus_message_parser::Message;
use std::convert::TryInto;
#[tokio::main]
async fn main() {
let (dbus, _server_handle) = DBus::session(true)
.await
.expect("failed to get the DBus object");
// Create a MethodCall.
let msg = Message::method_call(
"org.freedesktop.DBus".try_into().unwrap(),
"/org/freedesktop/DBus".try_into().unwrap(),
"org.freedesktop.DBus.Peer".try_into().unwrap(),
"Ping".try_into().unwrap(),
);
// Send the message and get the return message.
let return_msg = dbus.call(msg).await;
// Print the return message.
println!("{:?}", return_msg);
}
如果您想实现DBus服务且不手动实现 dbus_async::Handler
特性,则使用 dbus-async-derive
crate。
功能
依赖
~7.5MB
~124K SLoC