#sync #cross-platform #tool #binary #x86-64

app rjrssync

用于增量复制文件的快速rsync类似工具。在Windows和Linux上本地运行,并使用网络进行通信。

6个版本

0.2.7 2023年2月19日
0.2.6 2023年2月18日
0.1.1 2022年12月29日

#535 in 文件系统

每月下载24次

MIT 许可证

345KB
5K SLoC

关于

用于增量复制文件的快速rsync类似工具。在Windows和Linux上本地运行,并使用网络进行通信,以最大程度提高Windows和WSL文件系统之间同步的速度。

功能

  • 本地或远程目标(包括远程到远程)
  • 快速,尤其是在没有变化时
  • 在Windows和Linux上本地运行。比使用WSL与/mnt/\\wsl$\快得多
  • 远程目标无需设置
  • 保留符号链接
  • 过滤器
  • 回放频繁使用的同步
  • 一次命令同步多个文件夹
  • 干运行
  • 进度条和统计信息

安装

提供预构建的二进制文件,或者您可以从源代码构建。

二进制文件

某些平台可以从最新版本页面下载二进制文件。

您还可以使用cargo binstall进行安装,它将自动下载这些相同的二进制文件

cargo binstall rjrssync

从源代码构建

  1. 安装rust构建工具:https://www.rust-lang.net.cn/tools/install
  2. 运行cargo install rjrssync

这将从crates.io下载最新的源代码版本,然后构建并安装rjrssync。

支持其他平台

默认构建配置不会包括其他平台的交叉编译二进制文件,因此rjrssync无法同步到运行不同OS或架构的远程目标。如果您想启用此功能,则需要执行一些额外的构建步骤

  1. 安装交叉编译构建工具(见下文)
  2. 运行cargo install --features=embed-all rjrssync

作为构建的一部分,rjrssync 也为几个其他平台进行了交叉编译,并将它们嵌入到最终二进制文件中。您可能需要设置构建环境才能使此功能生效,例如向 rustup 添加一些额外的目标。

示例(Linux)

sudo apt install mingw-w64
rustup target add x86_64-pc-windows-gnu
rustup target add x86_64-unknown-linux-musl
rustup target add aarch64-unknown-linux-musl

示例(Windows)

rustup target add x86_64-unknown-linux-musl
rustup target add aarch64-unknown-linux-musl

用法

快速示例

rjrssync local-folder/ user@hostname:/remote/folder

rjrssync 使用 ssh 与远程主机建立初始连接,但随后切换到自己的协议以提高性能。第一次使用远程主机时,rjrssync 将将预构建的二进制文件部署到远程主机,该文件将在 rjrssync 连接到该主机时启动。在部署之前会提示您。rjrssync 的协议使用加密和认证 AES-GCM,密钥为 128 位,nonce 为 96 位。它通过 TCP 运行,因此需要一个开放的本地端口,以便本地副本可以连接到远程副本。默认情况下,它会自动选择一个空闲端口,但可以使用 --remote-port 覆盖。您可能需要调整防火墙设置以允许此连接。

有关更多信息,请参阅 rjrssync --help

还有一些关于各种特性的不太完善的说明 在这里

依赖关系

~8–18MB
~227K SLoC