7个版本 (重大更新)
0.7.0 | 2023年9月30日 |
---|---|
0.6.0 | 2023年9月24日 |
0.5.1 | 2023年9月23日 |
0.4.0 | 2023年9月17日 |
0.1.0 |
|
#547 in 压缩
每月下载 53次
36KB
632 代码行
Arkiv
Arkiv是一个便利库,通过单一一致的接口下载、打开、查询和提取各种格式的存档。
支持格式
sample.zip
(需要zip功能)。sample.tar
(需要tar功能)。sample.tgz
或sample.tar.gz
(需要tar和gzip功能)。sample.tar.xz
(需要tar和xz功能)。sample.tar.bz2
(需要tar和bzip功能)。sample.tar.zstd
或sample.tar.zst
(需要tar和zstd功能)。
用法
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(())
}
依赖
~6–15MB
~208K SLoC