10 个版本
0.4.0 | 2020年6月28日 |
---|---|
0.3.4 | 2019年7月23日 |
0.3.3 | 2019年5月28日 |
0.3.2 | 2019年3月23日 |
0.1.2 | 2019年2月27日 |
#445 in 文件系统
每月 72 次下载
在 httm 中使用
89KB
2K SLoC
LuminS
Luminous Synchronize
一个快速的、可靠的本地文件同步替代品 rsync
特性
100% Rust |
由 Rayon 库提供高性能支持,Rayon 是一个用于高并行的库 |
支持基于 Unix 的平台 |
在同步包含大量文件的目录时速度极快 |
多线程复制、删除和同步 |
使用 indicatif 库的进度条 |
使用方法
USAGE:
lms [SUBCOMMAND]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
cp Multithreaded directory copy
help Prints this message or the help of the given subcommand(s)
rm Multithreaded directory remove
sync Multithreaded directory synchronization [aliases: s]
同步
USAGE:
lms sync [FLAGS] <SOURCE> <DESTINATION>
FLAGS:
-h, --help Prints help information
-n, --nodelete Do not delete any destination files
-s, --secure Use a cryptographic hash function for hashing similar files
-S, --sequential Copy files sequentially instead of in parallel
-V, --version Prints version information
-v, --verbose Verbose outputs
ARGS:
<SOURCE> Source directory
<DESTINATION> Destination directory
复制
USAGE:
lms cp [FLAGS] <SOURCE> <DESTINATION>
FLAGS:
-h, --help Prints help information
-S, --sequential Copy files sequentially instead of in parallel
-V, --version Prints version information
-v, --verbose Verbose outputs
ARGS:
<SOURCE> Source directory
<DESTINATION> Destination directory
删除
USAGE:
lms rm [FLAGS] <TARGET>...
FLAGS:
-h, --help Prints help information
-S, --sequential Delete files sequentially instead of in parallel
-V, --version Prints version information
-v, --verbose Verbose outputs
ARGS:
<TARGET> Target directory
基准测试
在 Intel i7-8550U 上使用 hyperfine 进行测试,以下为两个测试文件夹:
目录 | 目录大小 | 文件数量 |
---|---|---|
1 | 88MB | 7262 |
2 | 105MB | 252 |
命令 | 目录 | 时间 |
---|---|---|
lms sync | 1 | 179.1 ms ± 5.1 ms |
rsync -r --delete | 1 | 717.8 ms ± 41.1 ms |
lms cp | 1 | 117.3 ms ± 3.6 ms |
cp -r | 1 | 283.4 ms ± 13.2 ms |
lms rm | 1 | 147.6 ms ± 8.6 ms |
rm -rf | 1 | 180.7 ms ± 4.3 ms |
---------------------- | --------------- | ----------------------------- |
lms sync | 2 | 101.2 ms ± 24.8 ms |
rsync -r --delete | 2 | 442.2 ms ± 19.6 ms |
lms cp | 2 | 33.8 ms ± 2.8 ms |
cp -r | 2 | 143.5 ms ± 18.8 ms |
lms rm | 2 | 10.0 ms ± 2.8 ms |
rm -rf | 2 | 27.4 ms ± 0.8 ms |
当然,这些基准测试可能高度依赖于 CPU 和 IO 设备。
构建
首先 安装 Rust(推荐使用 rustup)。
$ git clone https://github.com/wchang22/LuminS.git
$ cd LuminS
$ cargo build --release
安装
使用 cargo,
$ cargo install lms
贡献
欢迎提出建议、问题和 pull request!
依赖
~6–17MB
~187K SLoC