1 unstable release
0.1.0 | May 13, 2021 |
---|
#44 in #block-devices
17KB
304 lines
Safe portable wrapper for block device opperations
[(http://meritbadge.herokuapp.com/block-devs](https://crates.io/crates/block-devs)
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