blockdev is a lightweight Rust library for parsing and working with the output of the lsblk --json command on Linux. It leverages Serde for JSON deserialization, providing a type-safe representation of block devices and a set of utilities to inspect their properties.
- JSON Parsing: Easily parse the JSON output of
lsblk --jsoninto Rust data structures. - Flexible Mountpoint Support: Handles both single mountpoint values (which may be null) and arrays of mountpoints.
- System Device Detection: Determine whether a block device (or any of its nested children) is a system device (i.e. has a mountpoint of
/). - Filtering Utilities: Provides helper functions to filter out non-system devices.
Add blockdev to your Cargo.toml:
[dependencies]
blockdev = "0.1.0"Then run:
cargo builduse blockdev::get_devices;
fn example_devices() -> Result<BlockDevices, Box<dyn Error>> {
let devices = get_devices();
devices
}