#备份 #加密 #数据 #dedup #dedupliation #加密密钥 #环境变量

app rdedup

带压缩和公钥加密的数据去重。 - 二进制文件

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

Download history 6/week @ 2024-03-28 3/week @ 2024-04-04 1/week @ 2024-05-16 2/week @ 2024-05-23 1/week @ 2024-05-30

每月下载量60

MPL-2.0 许可证

205KB
5.5K SLoC

Travis CI Build Status Gitter Chat

rdedup

rdedup 是一个数据去重引擎和备份软件。请参阅当前项目状态原始用例描述维基页面。

rdedup 与现有的软件(如 duplicacyresticatticduplicityzbackup等)相似,侧重于非对称加密和友好的同步数据模型。得益于 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目前没有实现自己的备份/恢复功能(自己的目录遍历),因此通常与tarrdup工具一起使用。内置的目录遍历可以提高具有许多小型、经常变化文件的工作负载的重复数据删除率。

缺少云存储集成。支持它的架构大部分已经实现,但实际的后端还没有。

安装

如果您已安装cargo

cargo install rdedup

如果没有,我强烈建议安装rustup(想想pipnpm但对于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对数据不可知,因此如tarcpio和其他格式将工作,但要获得重复数据删除的好处,存档格式不应已压缩或加密。

RDEDUP_PASSPHRASE环境变量

如果定义了RDEDUP_PASSPHRASE,则将使用它而不是交互式要求用户输入密码。

许可证

rdedup根据MPL-2.0许可。

依赖关系

~25–35MB
~325K SLoC