1 stable release

1.0.0 Jul 16, 2024

#500 in Unix APIs

MIT license

12KB
162 lines

debarchive

This Rust crate provides direct access to files within a Debian archive. This crate is used by our debrep utility to generate the Packages and Contents files for generated apt repositories.

Features

  • Reading files from archives
  • Extracting files from archives
  • Writing new debian archives

Examples

extern crate debarchive;

use debarchive::Archive;
use std::path::Path;

fn main() {
    let path = &Path::new("name_version_arch.deb");
    let archive = Archive::new(path).unwrap();
    archive.data(|entry| {
        if let Ok(path) = entry.path() {
            println!("data: {}", path.display());
        }
    });

    let control_map = archive.control_map().unwrap();
    println!("Control: {:#?}", control_map);
}

lib.rs:

This crate provides direct access to files within a Debian archive.

Features

  • Reading files from archives
  • Extracting files from archives
  • Writing new debian archives

Examples

extern crate debarchive;

use debarchive::Archive;
use std::path::Path;

fn main() {
    let path = &Path::new("name_version_arch.deb");
    let archive = Archive::new(path).unwrap();
    archive.data(|entry| {
        if let Ok(path) = entry.path() {
            println!("data: {}", path.display());
        }
    });

    let control_map = archive.control_map().unwrap();
    println!("Control: {:#?}", control_map);
}

Dependencies

~9–17MB
~245K SLoC