6个版本
0.2.7 | 2023年2月19日 |
---|---|
0.2.6 | 2023年2月18日 |
0.1.1 | 2022年12月29日 |
#535 in 文件系统
每月下载24次
345KB
5K SLoC
关于
用于增量复制文件的快速rsync类似工具。在Windows和Linux上本地运行,并使用网络进行通信,以最大程度提高Windows和WSL文件系统之间同步的速度。
功能
- 本地或远程目标(包括远程到远程)
- 快速,尤其是在没有变化时
- 在Windows和Linux上本地运行。比使用WSL与
/mnt/
或\\wsl$\
快得多 - 远程目标无需设置
- 保留符号链接
- 过滤器
- 回放频繁使用的同步
- 一次命令同步多个文件夹
- 干运行
- 进度条和统计信息
安装
提供预构建的二进制文件,或者您可以从源代码构建。
二进制文件
某些平台可以从最新版本页面下载二进制文件。
您还可以使用cargo binstall进行安装,它将自动下载这些相同的二进制文件
cargo binstall rjrssync
从源代码构建
- 安装rust构建工具:https://www.rust-lang.net.cn/tools/install
- 运行
cargo install rjrssync
这将从crates.io下载最新的源代码版本,然后构建并安装rjrssync。
支持其他平台
默认构建配置不会包括其他平台的交叉编译二进制文件,因此rjrssync无法同步到运行不同OS或架构的远程目标。如果您想启用此功能,则需要执行一些额外的构建步骤
- 安装交叉编译构建工具(见下文)
- 运行
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