4 个版本
0.1.3 | 2024年1月3日 |
---|---|
0.1.2 | 2023年7月10日 |
0.1.1 | 2023年1月29日 |
0.1.0 | 2023年1月29日 |
#758 in 编码
每月47 次下载
22KB
539 行
archiv
archiv
是一个用于处理 .archiv
文件的库和 CLI。
.archiv
文件是一种简单的“文件格式”,由我不断重新发明。
该文件格式是
然后是头部,然后是重复的
length
,8 字节,小端模式:后续数据的长度data
,数据
你可能以前听说过。
在此基础上,我们可以添加诸如
- 流压缩
- 项目压缩
- 具有共享字典的项目压缩
- 具有嵌入式字典的项目压缩
- 并行处理压缩文件
- 索引
- 文档和共享术语
贡献
Github.
许可证
MIT / Apache-2
lib.rs
:
use archiv::Compress;
let opts = archiv::CompressOptions::default();
let mut archiv = opts.stream_compress(io::stdout())?;
archiv.write_item(b"hello")?;
archiv.finish()?;
use archiv::Expand;
let opts = archiv::ExpandOptions::default();
let mut archiv = opts.stream(io::stdin().lock())?;
while let Some(mut item) = archiv.next_item()? {
let mut s = String::new();
item.read_to_string(&mut s)?;
println!("{s}");
}
依赖关系
~4MB
~72K SLoC