Expand description
§Arkiv
Arkiv is a convenience library to download, open, consult and extract archives of various format through a single consistent interface.
§Supported Formats
sample.zip
(requires the zip feature).sample.tar
(requires thetar
feature).sample.tgz
orsample.tar.gz
(requirestar
andgzip
features).sample.tar.xz
(requirestar
andxz
features).sample.tar.bz2
(requirestar
andbzip
features).sample.tar.zstd
orsample.tar.zst
(requirestar
andzstd
features).
§Usage
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(())
}
Structs§
- Archive
- A collection of files, possibly compressed (e.g.
tar
,tar.gz
,zip
, …). - Downloader
- Allows to download an archive file and open it.
- Entry
- A descriptor of one entry in an archive.
Enums§
Type Aliases§
- Archive
Kind Deprecated - Available archive file formats.
- Entries
- An iterator over the entries of the archive
- Result
- Result type used throughout this crate