#index-file #rsync #clone #sync #single #ssh #local

已删除 rrsync

rsync/rdiff/zsync 克隆

使用旧的 Rust 2015

0.1.0 2019年10月30日
0.0.0 2019年10月28日

#27#rsync

BSD-3-Clause

55KB
1.5K SLoC

Build Status Say Thanks!

这是什么?

这是一个用 Rust 编程语言编写的 rsync 克隆。它的目的是在一个单独的程序中提供 rsync、rdiff 和 zsync 的功能,以及一些附加功能,如缓存文件签名以使重复同步更快。它还将提供一个库,允许在您的程序中使用这些功能。

生成文档

当前状态

核心功能已存在。您可以索引和同步本地文件夹。

下一步是实现 SSH 和 HTTP 远程。

如何使用

常用选项:-X 指示源侧索引文件的位置,而 - 指示目标侧的索引文件。

rsync

$ rrsync sync some/folder othermachine:folder

预计算的索引是可选的,但可以使操作更快

$ rrsync index -x folder.idx some/folder
$ ssh othermachine \
  rrsync index -x folder.idx folder
$ rrsync sync -X folder.idx -x othermachine:folder.idx some/folder othermachine:folder

rdiff

# Same as rdiff (signature/delta/patch)
$ rrsync index -x signature.idx old/folder
$ rrsync diff -o patch.bin -x signature.idx new/folder
$ rrsync patch old/folder patch.bin

zsync

$ rrsync index -x data.tar.rrsync.idx data.tar
$ rrsync sync -X data.tar.rrsync.idx old/data.tar
# Or over network
$ rrsync sync -X http://example.org/data.tar.rrsync.idx old/data.tar

备注

rsync 算法:[链接](https://rsync.samba.org/tech_report/) 如何工作:[链接](https://rsync.samba.org/how-rsync-works.html)

zsync:[链接](http://zsync.moria.org.uk/)

压缩包:[链接](https://crates.org.cn/crates/flate2)

依赖项

~23–30MB
~475K SLoC