2 unstable releases

0.2.0 Dec 1, 2024
0.1.0 Feb 15, 2024

#301 in Unix APIs

Download history 9/week @ 2024-09-09 33/week @ 2024-09-16 20/week @ 2024-09-23 80/week @ 2024-09-30 19/week @ 2024-10-07 43/week @ 2024-10-14 27/week @ 2024-10-21 235/week @ 2024-10-28 97/week @ 2024-11-04 154/week @ 2024-11-18 83/week @ 2024-11-25 99/week @ 2024-12-02 45/week @ 2024-12-09

381 downloads per month

LGPL-2.1

230KB
5K SLoC

Udisks

An unofficial Rust client crate for udisks2. Udisks allows accessing and manipulating disks, storages devices and similar technologies.

Version

Based on https://github.com/storaged-project/udisks/commit/4b1250cdf5897391e449ca0ad3836598c3b00dad for the client and https://github.com/storaged-project/udisks/commit/3e499ea0248ee73043aedab834f32501019830a8 for the generated interfaces.

Example

// we use tokio in this example, but you can use any runtime
#[tokio::main]
async fn main() -> udisks2::Result<()> {
    let client = udisks2::Client::new().await?;
    let object = client
        .object("/org/freedesktop/UDisks2/block_devices/sda")
        .expect("No sda device found");
    let block = object.block().await?;
    let drive = client.drive_for_block(&block).await?;
    println!(
        "Size: {}",
        client.size_for_display(drive.size().await?, true, true)
    );
    Ok(())
}

Documentation

While this crate provides documentation for the handwritten code, the generated types may be lacking. In this case it is recommended to use the official documentation.

Internationalization

This crate uses the same localization as UDisks2, which uses gettext. If the locale is left unset, English will be used.

Dependencies

~21–32MB
~337K SLoC