6 releases (breaking)
0.6.0 | May 25, 2022 |
---|---|
0.5.0 | Mar 20, 2021 |
0.4.0 | Jan 2, 2020 |
0.3.0 | Dec 15, 2019 |
0.1.0 | Nov 19, 2019 |
#816 in Unix APIs
7,314 downloads per month
Used in remote-package
120KB
562 lines
Contains (debian package, 83KB) tests/debs/xz-utils_5.2.4-1_amd64.deb, (debian package, 23KB) tests/debs/libgssglue1_0.3-4_amd64.deb
DebPkg
A Rust library to parse binary debian packages.
This library provides utilties to parse binary debian packages abstracted over a reader. This API provides a streaming interface to avoid loading the entire debian package into RAM.
This library only parses binary debian packages. It does not attempt to write binary debian packages.
Supported Debian Package Versions
This package only supports version 2.0 of debian packages. Older versions are not currently supported.
Examples
Parsing a debian package
let file = std::fs::File::open("test.deb").unwrap();
let mut pkg = debpkg::DebPkg::parse(file).unwrap();
let mut control_tar = pkg.control().unwrap();
let control = debpkg::Control::extract(control_tar).unwrap();
println!("Package Name: {}", control.name());
println!("Package Version: {}", control.version());
let arch = control.get("Architecture").unwrap();
println!("Package Architecture: {}", arch);
let mut data = pkg.data().unwrap();
let dir = tempfile::TempDir::new().unwrap();
data.unpack(dir).unwrap();
Dependencies
~8–16MB
~221K SLoC