| Crates.io | arkiv |
| lib.rs | arkiv |
| version | 0.7.0 |
| created_at | 2023-09-15 17:44:14.405473+00 |
| updated_at | 2023-09-30 15:13:20.022764+00 |
| description | library providing convenience function to manipulate various kind of archive (zip, tar.gz, tar.xz, ... ) |
| homepage | https://github.com/meuter/arkiv-rs |
| repository | https://github.com/meuter/arkiv-rs |
| max_upload_size | |
| id | 973842 |
| size | 55,531 |
Arkiv is a convenience library to download, open, consult and extract archives of various format through a single consistent interface.
sample.zip (requires the zip feature).sample.tar (requires the tar feature).sample.tgz or sample.tar.gz (requires tar and gzip features).sample.tar.xz (requires tar and xz features).sample.tar.bz2 (requires tar and bzip features).sample.tar.zstd or sample.tar.zst (requires tar and zstd features).use arkiv::{Result, Archive};
fn main() -> Result<()> {
// open the archive from a local file
let mut archive = arkiv::Archive::open("path/to/archive.tar.xz")?;
// or download it over HTTP(S) - requires the `download` feature.
#[cfg(feature="download")]
let mut archive = {
let url = "https://github.com/meuter/arkiv-rs/raw/main/tests/sample/sample.tar.zstd";
arkiv::Archive::download(url)?
};
// iterate over entries
for entry in archive.entries_iter()? {
let entry = entry?;
println!("{} {}", entry.size(), entry.path().display());
}
// extract the archive (perserves permission on unix targets)
archive.unpack("/tmp/")?;
Ok(())
}