#block-devices

block-devs

Safe portable wrapper for block device opperations

1 unstable release

0.1.0 May 13, 2021

#44 in #block-devices

MIT license

17KB
304 lines

Safe portable wrapper for block device opperations

[crates.io(http://meritbadge.herokuapp.com/block-devs](https://crates.io/crates/block-devs)

Documentation (Releases)

Block Devs provides safe wrappers for the ioctl call for dealing with block devices (USB sticks, SSDs, hard drives etc).

It aims to provide a consitent interface across all platforms for things like getting the number of bytes a disk has.

It does this by a extention trait on the standard File struct.

    use block-devs::BlockExt;
    use std::fs::File;
    
    let path = "/dev/sda2";
    let file = File::open(path)?;
    let bytes = file.get_block_device_size()?;
    let gb = bytes >> 30;

    println!("disk is {} blocks {}gb", bytes, gb);

Supported Platforms

It currently supports Linux, OS X, and Free BSD, pull requests for other platforms are welcome

License

block-devs is licensed under the MIT license. See LICENSE for more details.


lib.rs:

Block Devs provides safe wrappers for the ioctl calls for dealing with block devices (USB sticks, SSDs, hard drives etc).

It aims to provide a consitent interface across all platforms for things like getting the number of bytes a disk has.

So far Linux, macOS and Open BSD are supported

It does this by a extention trait (BlckExt) on the standard File struct.

    use block_devs::BlckExt;
    use std::fs::File;

    let path = "/dev/sda2";
    let file = File::open(path).unwrap();
    let count = file.get_block_count().unwrap();
    let bytes = file.get_block_device_size().unwrap();
    let gb = bytes >> 30;

    println!("disk is {} blocks totaling {}gb", count, gb);

Dependencies

~1.5MB
~36K SLoC