16 releases (stable)

5.0.0 Oct 21, 2024
4.0.0 Feb 16, 2024
3.0.1 May 12, 2023
3.0.0 Sep 13, 2022
1.0.1 Jul 19, 2020

#89 in Unix APIs

Download history 21246/week @ 2024-10-30 27161/week @ 2024-11-06 29489/week @ 2024-11-13 19687/week @ 2024-11-20 14082/week @ 2024-11-27 21777/week @ 2024-12-04 17024/week @ 2024-12-11 16528/week @ 2024-12-18 3030/week @ 2024-12-25 12573/week @ 2025-01-01 24744/week @ 2025-01-08 25765/week @ 2025-01-15 24870/week @ 2025-01-22 29432/week @ 2025-01-29 30805/week @ 2025-02-05 19291/week @ 2025-02-12

108,660 downloads per month

MIT license

24KB
263 lines

zbus_polkit

CI Pipeline Status Documentation crates.io

A crate to interact with PolicyKit, a toolkit for defining and handling authorizations. It is used for allowing unprivileged processes to speak to privileged processes.

Status: Stable.

Example code

use zbus::Connection;
use zbus_polkit::policykit1::*;

// Although we use `async-std` here, you can use any async runtime of choice.
#[async_std::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let connection = Connection::system().await?;
    let proxy = AuthorityProxy::new(&connection).await?;
    let subject = Subject::new_for_owner(std::process::id(), None, None)?;
    let result = proxy.check_authorization(
        &subject,
        "org.zbus.BeAwesome",
        &std::collections::HashMap::new(),
        CheckAuthorizationFlags::AllowUserInteraction.into(),
        "",
    ).await?;

    Ok(())
}

Dependencies

~8–20MB
~298K SLoC