blockdev

Crates.ioblockdev
lib.rsblockdev
version0.1.2
created_at2025-02-24 04:19:39.263471+00
updated_at2025-02-24 04:49:58.495132+00
descriptionA Rust library for parsing and working with lsblk JSON output, providing type-safe block device representation and utilities for Linux
homepagehttps://github.com/wiggels/blockdev
repositoryhttps://github.com/wiggels/blockdev
max_upload_size
id1566938
size29,082
Hunter Wigelsworth (wiggels)

documentation

https://docs.rs/blockdev

README

blockdev

Crates.io Documentation License

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.

Features

  • JSON Parsing: Easily parse the JSON output of lsblk --json into 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.

Installation

Add blockdev to your Cargo.toml:

[dependencies]
blockdev = "0.1.0"

Then run:

cargo build

Usage

Get devices

use blockdev::get_devices;

fn example_devices() -> Result<BlockDevices, Box<dyn Error>> {
    let devices = get_devices();
    devices
}
Commit count: 9

cargo fmt