1 个不稳定版本
0.4.0 | 2022年1月31日 |
---|
#1349 in 文件系统
每月 75 次下载
74KB
1.5K SLoC
LuminS 库
光亮同步
一种比 rsync 更快、更可靠的本地文件同步替代方案
特性
100% Rust |
由 Rayon 库提供支持,实现高性能并行处理 |
支持基于 Unix 的平台 |
在同步包含大量文件的目录时速度极快 |
多线程复制、删除和同步 |
使用 indicatif 实现的进度条 |
复制
use lms_lib::{core, parse::Flag};
use std::path::Path;
main () {
let src = Path::new("/foo/bar/hello.txt");
let dest = Path::new("/bar/foo/hi.txt");
core::copy(&src, &dest, Flag::empty())?;
}
同步
use lms_lib::{core, parse::Flag};
use std::path::Path;
main () {
let src = Path::new("/foo/bar/hello.txt");
let dest = Path::new("/bar/foo/hi.txt");
core::synchronize(&src, &dest, Flag::empty())?;
}
删除
use lms_lib::{core, parse::Flag};
use std::path::Path;
main () {
let target = Path::new("/bar/foo/hi.txt");
core::remove(&target, Flag::empty())?;
}
基准测试
在 Intel i7-8550U 上使用 hyperfine 进行测试,以下为 2 个测试文件夹:
目录 | 目录大小 | 文件数量 |
---|---|---|
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 和 I/O 设备。
贡献
欢迎建议、问题和拉取请求!
依赖
~6–15MB
~162K SLoC