24个版本 (12个稳定版)
3.2.1 | 2021年9月7日 |
---|---|
3.1.1 | 2019年1月28日 |
3.0.3 | 2018年8月2日 |
3.0.2 | 2018年7月29日 |
0.3.0 | 2016年7月1日 |
在 密码学 中排名第453
每月下载量60次
205KB
5.5K SLoC
rdedup
rdedup
是一个数据去重引擎和备份软件。请参阅当前项目状态和原始用例描述维基页面。
rdedup
与现有的软件(如 duplicacy
,restic
,attic
,duplicity
,zbackup
等)相似,侧重于非对称加密和友好的同步数据模型。得益于 Rust 和稳健的架构,rdedup 也非常高效和非常可靠(从未报告过数据丢失错误)。
rdedup
使用 Rust 编写,并提供命令行工具和库 API(rdedup-lib
)。该库可以用于将核心引擎嵌入到其他应用程序中,或构建自定义前端和工具。
特性
- 简单而稳健的密码学
- 基于 libsodium
- 公钥加密模式(我所知唯一一个这样的工具,也是创建
rdedup
的主要原因)
- 扁平文件,友好同步(Dropbox/syncthing,rsync,rclone)
- 不可变,无数据冲突的数据存储
- 云后端正在开发中
- 增量,可伸缩的垃圾回收
- 支持多种算法
- 分块:fastcdc,gear,bup
- 哈希:blake2b,sha256
- 压缩:zstd,deflate,xz2,bzip2,无压缩
- 加密:curve25519,无加密
- 非常容易添加新的
- 查看
rdedup init --help
输出以获取最新列表
- 极高的性能和并行性 - 请参阅
rdedup
中的 Rust 无所畏惧的并发 - 可靠性重点(例如,
rdedup
使用fsync
+rename
以避免硬件故障时的数据损坏) - 内置时间/性能分析器
优点
它用Rust编写。Rust是一种现代语言,实际上非常好用。Rust使软件变得非常健壮和快速。
作者是一个好人,欢迎贡献,并帮助用户。或者至少他正在尝试... :)
缺点和缺失功能
rdedup
目前没有实现自己的备份/恢复功能(自己的目录遍历),因此通常与tar
或rdup
工具一起使用。内置的目录遍历可以提高具有许多小型、经常变化文件的工作负载的重复数据删除率。
缺少云存储集成。支持它的架构大部分已经实现,但实际的后端还没有。
安装
如果您已安装cargo
cargo install rdedup
如果没有,我强烈建议安装rustup(想想pip
,npm
但对于Rust)
如果您想以最大可能的性能运行rdedup
,请尝试
RUSTFLAGS="-C target-cpu=native" cargo install rdedup --vers ...
如果遇到问题,请检查rdedup构建问题或报告一个新问题(抱歉)!
用法
查看rdedup -h
以获取帮助。
Rdedup始终在您提供的仓库上操作,您可以通过参数提供(例如,--dir <DIR>
),或通过环境变量(例如,RDEDUP_DIR
)。
支持的命令
rdedup init
- 创建一个新的仓库。rdedup init --help
以获取仓库配置选项。
rdedup store <name>
- 将标准输入中的数据存储在给定的name下。rdedup load <name>
- 加载存储在给定name下的数据并将其写入标准输出。rdedup rm <name>
- 删除给定的name。rdedup ls
- 列出所有存储的名称。rdedup gc
- 删除任何不再可达的数据。
结合rdup使用,可以像这样存储和恢复备份
rdup -x /dev/null "$HOME" | rdedup store home
rdedup load home | rdup-up "$HOME.restored"
rdedup
对数据不可知,因此如tar
、cpio
和其他格式将工作,但要获得重复数据删除的好处,存档格式不应已压缩或加密。
RDEDUP_PASSPHRASE
环境变量
如果定义了RDEDUP_PASSPHRASE
,则将使用它而不是交互式要求用户输入密码。
许可证
rdedup根据MPL-2.0许可。
依赖关系
~25–35MB
~325K SLoC