13个稳定版本

使用旧的Rust 2015

2.0.0 2018年12月19日
1.1.2 2018年5月21日
1.1.0 2018年4月29日
1.0.4 2018年3月31日
0.9.3 2018年3月19日

#635 in 压缩

每月下载量 31次

MIT 许可证

535KB
12K SLoC

blockyarchive

Build Status Build status codecov Coverage Status Crates dependency status

文档

现有rust-SeqBox用户注意事项

rsbx 2.0.0rsbx 包的最后一个更新版本,所有未来的版本都将发布在 blkar 包下。


Blockyarchive/blkar(原名rust-SeqBox)是一个用于创建、恢复和通用处理SeqBox存档的综合工具,可选的前向纠错。

SeqBox是由Marco Pontello设计的单文件存档格式,它简化了当文件系统元数据损坏/丢失时的扇区级数据恢复,同时存档本身仍然作为正常文件存在于文件系统中。

请访问官方的SeqBox仓库以获取原始实现和该技术的技术细节。

与原始SeqBox实现/设计的比较

原始SeqBox实现和格式不支持数据修复,仅支持扇区级可恢复性。与原始SeqBox实现相比,Blkar也更健壮,因为它不假设SBX容器是良好形成的,并且尽可能少地假设SBX容器。

Blockyarchive通过向SeqBox格式的扩展版本添加前向纠错(里德-索洛蒙纠删码)来进行修复,并允许以突发错误抵抗的图案排列块。

blkar总体基于osbx,但优化得更好。

总体功能

  • 不依赖于文件系统元数据的数据恢复(扇区级恢复)
    • 这允许在数据碎片化和无序的情况下进行数据恢复
  • 支持纠错(通过里德-索洛蒙纠删码)
  • 支持突发扇区错误抵抗
  • JSON模式
    • 以JSON格式而不是可读文本输出信息

目标

由于blkar主要用作备份工具,因此代码的安全性和健壮性将优先于明显的性能。

入门

安装

blkar 可通过 GitHub 发布版 或通过 cargo 获取。

cargo install blkar

使用指南、屏幕录像及其他资源

维基页面上包含了全面的指南和资源。

变更日志

变更日志

规范

SBX 格式

blkar 规范

贡献

欢迎贡献。请注意,通过提交贡献,您同意在与此项目相同的许可证下许可您的工作(MIT 许可证)。

致谢

我要感谢 Marco(官方 SeqBox 作者)在讨论和阐明他的项目的各个方面,并在 osbx 开发过程中提供测试数据。我还要感谢他对启用纠错功能的 SBX 版本(版本 17、18、19)编号的反馈。

我还要感谢 Ming 对文档、UX 设计以及 osbx 项目的几个其他方面的反馈,其中大部分设计都传承到了 rsbx 中,以及他对这个项目的进一步反馈。

进度报告文本中可读率的布局设计参考了 Arch Linux pacman 的进度条设计。

RS 启用版本中区块集交错排列的设计深受 Thanassis Tsiodras 的 RockFAT 设计 的启发。交错排列可以抵抗突发扇区错误。

许可证

Libcrc 代码

crcccitt 代码是从 libcrc 中的 C 实现翻译过来的,并使用与 libcrc 相同的 MIT 许可证。在 libcrc 源代码中,crcccitt.c 的许可证文本被复制到 crcccitt/build.rscrcccitt/src/lib.rsbuild.rssrc/crc_ccitt.rs 中。

直接从 libcrc 复制的 crcccitt 的 C 源代码使用与 libcrc 相同的 MIT 许可证,文件位于 libcrc_crcccitt 中。

官方 SeqBox 代码

tests 文件夹中的文件来自官方 SeqBox,其许可证为 MIT 许可证,截至写作时间。

  • tests/SeqBox/*

所有其余文件均按 LICENSE 文件中所述的 MIT 许可证分发。

依赖项

~7–15MB
~178K SLoC