#tar-archive #tar #file-reader #reader-writer #encoding

async-tar-wasm

这是一个异步TAR文件读写器的Rust实现。这个库目前不处理压缩,但它抽象了所有的I/O读取器和写入器。此外,还采取了极大努力以确保整个内容不需要一次性完全驻留在内存中。此分支包含禁用文件系统操作的能力,因此可以在wasm32-unknown-unknown环境中使用。

1 个不稳定版本

0.4.2-wasm.12023年2月25日

#386压缩

Download history 5/week @ 2024-04-08 5/week @ 2024-04-22 6/week @ 2024-04-29 1/week @ 2024-05-06 28/week @ 2024-05-13 7/week @ 2024-05-20 6/week @ 2024-05-27 30/week @ 2024-06-03 28/week @ 2024-06-10 19/week @ 2024-06-24 31/week @ 2024-07-01 30/week @ 2024-07-08 106/week @ 2024-07-15 57/week @ 2024-07-22

226 每月下载量
3 个crate中(通过 nassun)使用

MIT/Apache

150KB
3K SLoC

async-tar

async Rust的tar归档读写库。


基于伟大的tar-rs

读取归档

use async_std::io::stdin;
use async_std::prelude::*;

use async_tar::Archive;

fn main() {
    async_std::task::block_on(async {
        let mut ar = Archive::new(stdin());
        let mut entries = ar.entries().unwrap();
        while let Some(file) = entries.next().await {
            let f = file.unwrap();
            println!("{}", f.path().unwrap().display());
        }
    });
}

写入归档

use async_std::fs::File;
use async_tar::Builder;

fn main() {
    async_std::task::block_on(async {
        let file = File::create("foo.tar").await.unwrap();
        let mut a = Builder::new(file);

        a.append_path("README.md").await.unwrap();
        a.append_file("lib.rs", &mut File::open("src/lib.rs").await.unwrap())
            .await
            .unwrap();
    });
}

MSRV

最小稳定Rust版本:1.51

MSRV的提升伴随着小版本的提升

许可证

本项目受以下其中一种许可证的许可:

由您选择。

贡献

除非您明确声明,否则您有意向性地提交给本项目并由您包括在内的任何贡献,根据Apache-2.0许可证的定义,应双重许可如上,不附加任何额外条款或条件。

依赖关系

~5–14MB
~184K SLoC