22 releases (5 stable)

4.0.0 Sep 13, 2024
4.0.0-rc.3 Apr 21, 2024
4.0.0-rc.1 Nov 18, 2023
3.1.0 Jul 4, 2023
0.1.7 Apr 24, 2017

#56 in Filesystem

Download history 5353/week @ 2024-08-21 5774/week @ 2024-08-28 5153/week @ 2024-09-04 5919/week @ 2024-09-11 4857/week @ 2024-09-18 5481/week @ 2024-09-25 4812/week @ 2024-10-02 4920/week @ 2024-10-09 5895/week @ 2024-10-16 4118/week @ 2024-10-23 4708/week @ 2024-10-30 5117/week @ 2024-11-06 4026/week @ 2024-11-13 3848/week @ 2024-11-20 3343/week @ 2024-11-27 3904/week @ 2024-12-04

15,727 downloads per month
Used in 18 crates (14 directly)

MIT license

115KB
2K SLoC

gpt

crates.io minimum rust 1.63 Documentation

A pure-Rust library to work with GPT partition tables.

gpt provides support for manipulating (R/W) GPT headers and partition tables. It supports any that implements the Read + Write + Seek + Debug traits.

Example

use gpt;

use std::io;

fn main() {
    // Inspect disk image, handling errors.
    if let Err(e) = run() {
        eprintln!("Failed to inspect image: {}", e);
        std::process::exit(1)
    }
}

fn run() -> io::Result<()> {
    // First parameter is target disk image (optional, default: fixtures sample)
    let sample = "tests/fixtures/gpt-linux-disk-01.img".to_string();
    let input = std::env::args().nth(1).unwrap_or(sample);

    // Open disk image.
    let diskpath = std::path::Path::new(&input);
    let cfg = gpt::GptConfig::new().writable(false);
    let disk = cfg.open(diskpath)?;

    // Print GPT layout.
    println!("Disk (primary) header: {:#?}", disk.primary_header());
    println!("Partition layout: {:#?}", disk.partitions());

    Ok(())
}

Dependencies

~425–580KB
~11K SLoC