Crate kpea

Source
Expand description

§kpea

Crates.io Version Docs dependency status

CPIO archive reader/writer library. Supports New ASCII, New CRC, Old character, and New binary formats.

§Introduction

kpea is a library that offers Archive and Builder types that unpack/pack CPIO archives. The library is fuzz-tested against GNU cpio.

§Adding as a dependency

To import kpea as cpio use the following syntax.

[dependencies]
cpio = { package = "kpea", version = "0.1.0" }

§Example

use kpea as cpio; // not needed if you added dependency as `cpio`
use std::fs::File;
use std::io::Error;

fn create_archive() -> Result<(), Error> {
    let file = File::create("archive.cpio")?;
    let mut builder = cpio::Builder::new(file);
    builder.append_path("/etc/passwd", "passwd")?;
    builder.append_path("/etc/group", "group")?;
    builder.finish()?;
    Ok(())
}

fn open_archive() -> Result<(), Error> {
    let file = File::open("archive.cpio")?;
    let mut archive = cpio::Archive::new(file);
    while let Some(mut entry) = archive.read_entry()? {
        println!("{:?}", entry.path);
    }
    Ok(())
}

Structs§

Archive
CPIO archive reader.
Builder
CPIO archive writer.
Entry
CPIO archive entry.
EntryReader
A reader for a particular archive entry.
Metadata
CPIO archive metadata.

Enums§

ByteOrder
Byte order.
FileType
File types supported by CPIO.
Format
CPIO archive format.