一个 Rust 实现的 .6cy 归档格式,具有以下特性:
# 将文件打包成归档
6cy pack -o archive.6cy -i file1.txt file2.txt
# 列出归档内容
6cy list archive.6cy
# 提取文件
6cy unpack archive.6cy -C ./output_dir
# 查看归档信息
6cy info archive.6cy
# 创建加密归档
6cy pack -o secure.6cy -i sensitive.dat --password "mypassword"
# 使用 FEC 进行错误恢复(10 个数据分片,4 个奇偶校验分片)
6cy pack -o resilient.6cy -i data/ --fec 10/4
# 使用基于内容的分块实现去重
6cy pack -o dedup.6cy -i data/ --cdc --merkle
# 从受损归档中恢复
6cy recover damaged.6cy -o recovered.6cy
# 合并归档
6cy merge archive1.6cy archive2.6cy -o merged.6cy
| 命令 | 描述 |
|---|---|
pack | 从文件/目录创建归档 |
unpack | 从归档提取文件 |
list | 列出归档内容 |
info | 显示归档元数据 |
scan | 扫描块(无索引) |
recover | 从受损归档中提取可恢复数据 |
optimize | 以不同压缩级别重新压缩 |
merge | 合并多个归档 |
bench | 对 RLE 预过滤器进行基准测试 |
vanta | 隐写子命令 |
use sixcy::Archive;
let opts = sixcy::PackOptions {
default_codec: sixcy::CodecId::Zstd,
level: 3,
use_cdc: true,
build_merkle: true,
..Default::default()
};
let mut ar = Archive::create("data.6cy", opts)?;
ar.add_file("readme.txt", b"Hello, world!")?;
ar.finalize()?;
src/
├── archive.rs # 高级 Archive API
├── block.rs # 块格式(84 字节头部)
├── superblock.rs # 归档头部(512 字节)
├── codec/ # 压缩编解码器注册表
├── crypto/ # AES-256-GCM + Argon2id
├── cdc.rs # Gear64 基于内容的分块
├── fec.rs # Reed-Solomon 前向纠错
├── merkle.rs # 二叉树 Merkle 树 + 证明
├── sharding.rs # Shamir 秘密共享
├── stego.rs # LSB 隐写
├── chaos.rs # 块打乱工具
├── io_stream/ # 归档读写器
├── index/ # 文件索引管理
├── recovery/ # 跳过索引的恢复扫描器
├── perf.rs # 性能工具
└── plugin.rs # 编解码器插件的 C ABI
当前:v2.1.0(format_version = 2)
.6cy 格式在 spec.md 中有文档说明。