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

binstall-tar

这是一个Rust实现的TAR文件读取器和写入器库。该库目前不处理压缩,但它抽象了所有的I/O读取器和写入器。此外,还采取了极大努力确保整个内容不会一次性全部驻留在内存中。

2个版本

0.4.42 2024年6月7日
0.4.39 2022年9月10日

#28 in 压缩

Download history 3016/week @ 2024-04-28 3062/week @ 2024-05-05 2337/week @ 2024-05-12 3164/week @ 2024-05-19 2231/week @ 2024-05-26 3383/week @ 2024-06-02 3424/week @ 2024-06-09 2832/week @ 2024-06-16 2686/week @ 2024-06-23 2829/week @ 2024-06-30 2000/week @ 2024-07-07 2303/week @ 2024-07-14 2951/week @ 2024-07-21 2649/week @ 2024-07-28 3693/week @ 2024-08-04 3211/week @ 2024-08-11

12,692 每月下载量
用于 11 个crate(4个直接)

MIT/Apache

160KB
3K SLoC

tar-rs

文档

Rust的tar归档读写库。

# Cargo.toml
[dependencies]
binstall_tar = "0.4"

读取归档

extern crate binstall_tar;

use std::io::prelude::*;
use std::fs::File;
use binstall_tar::Archive;

fn main() {
    let file = File::open("foo.tar").unwrap();
    let mut a = Archive::new(file);

    for file in a.entries().unwrap() {
        // Make sure there wasn't an I/O error
        let mut file = file.unwrap();

        // Inspect metadata about the file
        println!("{:?}", file.header().path().unwrap());
        println!("{}", file.header().size().unwrap());

        // files implement the Read trait
        let mut s = String::new();
        file.read_to_string(&mut s).unwrap();
        println!("{}", s);
    }
}

写入归档

extern crate binstall_tar;

use std::io::prelude::*;
use std::fs::File;
use tar::Builder;

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

    a.append_path("file1.txt").unwrap();
    a.append_file("file2.txt", &mut File::open("file3.txt").unwrap()).unwrap();
}

许可

该项目受以下任一许可协议的许可:

任选其一。

贡献

除非您明确表示,否则根据Apache-2.0许可协议定义的,您有意提交以包含在本项目中的任何贡献,均应按上述方式双许可,不附加任何额外的条款或条件。

依赖

~2–10MB
~115K SLoC