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 异步

Download history 3/week @ 2024-04-13 8/week @ 2024-06-29 59/week @ 2024-07-27

67 每月下载量
用于 2 crates

BSD-3-Clause

75KB
1.5K SLoC

dbus-async

纯Rust编写的异步DBus库。
Build status Latest version License Dependency status

用法

将以下内容添加到您的 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