systemd_client 0.1.0

systemd client library implemented with dbus
docs.rs failed to build systemd_client-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: systemd_client-0.2.1

systemd-client

systemd dbus client lib using dbus-codegen

Examples

blocking

use systemd_client::{
    build_blocking_client,
    manager::blocking::OrgFreedesktopSystemd1Manager,
    models::{IntoModel, Unit},
    Result, SystemdObjectType,
};

fn main() -> Result<()> {
    let client = build_blocking_client(SystemdObjectType::Manager)?;
    let units = client.list_units()?;
    for unit in units {
        let unit: Unit = unit.into_model()?;
        println!("{:#?}", unit);
    }
    Ok(())
}

nonblock

use systemd_client::{
    build_nonblock_client,
    manager::nonblock::OrgFreedesktopSystemd1Manager,
    models::{IntoModel, Unit},
    Result, SystemdObjectType,
};

#[tokio::main]
pub async fn main() -> Result<()> {
    let (client, jh) = build_nonblock_client(SystemdObjectType::Manager)?;
    let units = client.list_units().await?;
    for unit in units {
        let unit: Unit = unit.into_model()?;
        println!("{:#?}", unit);
    }
    // close connection
    jh.abort();
    Ok(())
}

Development

Install Tools

sudo apt install libdbus-1-dev pkg-config

Codegen

edit build.rs and save