大家好,最近折腾了一个小工具 CrossBag,今天 v0.2.0 MVP 终于跑通了,来分享一下。
为什么写这个?
痛点很真实:家里台式机 ↔️ 云端云电脑,文件要同步,但:
- 云盘?不想把数据放第三方
- SMB/NFS?跨公网太麻烦
- rsync + ssh?每次都要手动跑,不够实时
于是想搞一个:自动发现、实时同步、数据不过第三方的方案。
CrossBag 做了什么
核心思路很简单:
你的文件 → 文件系统监听 (毫秒级)
↓ 变更事件
BLAKE3 快速哈希 → 只传变了的部分
↓
Easytier 虚拟网络 (加密 P2P 隧道)
↓
对端机器 → 写入文件
技术栈:
- Rust — 性能 + 安全,零成本抽象
- Tokio — 异步运行时
- Notify — 跨平台文件监控
- Easytier — 虚拟组网,自动打洞,不需要公网 IP
- BLAKE3 — 超快哈希,diff 速度是 SHA256 的 8x+
现在能干什么
# 初始化配置
crossbag init
# 添加同步对
crossbag add --id my-sync \
--local ~/Documents \
--remote-node office-pc \
--remote ~/Documents
# 启动守护进程(后台持续同步)
crossbag serve
# 查看状态
crossbag status
支持三种同步模式:
- Push — 只上传
- Pull — 只下载
- Bidirectional — 双向同步 + 冲突检测
也可以装成系统服务:
crossbag service install # Windows sc / Linux systemd / macOS launchd
crossbag service start
测试情况
- 21 个单元测试 ✅
- 8 个集成测试 ✅(全量同步、增量、嵌套目录、大文件分块、冲突检测)
- Windows / macOS / Linux CI 全绿
还不够完善的地方
毕竟是 v0.2.0 MVP,以下还没有:
- ❌ GUI 管理界面
- ❌ 移动端支持
- ❌ 断点续传(大文件传输中断会重新传)
- ❌ Web UI
欢迎提 Issue 和 PR,项目完全开源(Apache 2.0)。
安装
cargo install --git https://github.com/bit-torch/CrossBag.git --tag v0.2.0
或者去 Releases 页面下载预编译 binary(GitHub Actions 自动构建)。
🔗 GitHub: github.com/bit-torch/C…
有问题欢迎评论区交流,觉得有用的话给个 Star 吧 ⭐