24 releases
| 0.2.0 | Dec 19, 2025 |
|---|---|
| 0.1.2 | Dec 16, 2025 |
| 0.0.65 | Nov 25, 2025 |
| 0.0.55 | Oct 31, 2025 |
#719 in Filesystem
1.5MB
28K
SLoC
sy
Modern file synchronization tool - rsync, reimagined
Quick Start
sy /source /destination
That's it. Use sy --help for options.
When to Use sy
sy excels at:
- Repeated syncs (backups, deployments) — 3x faster after first run
- Large files on APFS/BTRFS/XFS — 40x+ faster via COW reflinks
- Mixed workloads — 2x faster
- Bulk SSH transfers — 2-4x faster
rsync is better for:
- First-time sync of many small files — ~1.3x faster
- SSH incremental updates — ~1.3x faster
Bottom line: If you sync the same paths repeatedly, sy saves time. If you're doing one-off copies of thousands of tiny files, rsync is faster.
Installation
Homebrew (macOS)
brew tap nijaru/tap
brew install sy
From crates.io
cargo install sy
# Optional features
cargo install sy --features acl # ACL preservation (Linux: requires libacl)
cargo install sy --features s3 # S3 support (experimental)
From Source
git clone https://github.com/nijaru/sy.git
cd sy
cargo install --path .
For SSH sync: Install sy on both local and remote machines.
Examples
# Basic
sy ~/project ~/backup # Local backup
sy ~/src ~/dest --delete # Mirror (remove extra files)
sy /source /dest --dry-run # Preview changes
# Remote
sy /local user@host:/remote # SSH sync
sy /local user@host:/backup --bwlimit 1MB
# Verification
sy ~/src ~/dest --verify # Verify writes (xxHash3)
sy ~/backup ~/original --verify-only # Audit existing files
# Filters
sy ~/src ~/dest --exclude "*.log"
sy ~/src ~/dest --gitignore --exclude-vcs
# Advanced
sy --bidirectional /laptop /backup # Two-way sync
sy ~/dev /backup --watch # Continuous sync
sy ~/src ~/dest -j 1 # Sequential (many tiny files)
Trailing slash: sy follows rsync semantics —
/sourcecopies the directory,/source/copies contents only.
Features
- Delta sync — Only transfers changed bytes (rsync algorithm)
- Parallel transfers — Configurable worker count (
-j) - Resume support — Automatically resumes interrupted syncs
- Integrity verification — Optional xxHash3 checksums (
--verify) - Bidirectional sync — Two-way sync with conflict resolution
- Watch mode — Continuous file monitoring
- SSH transport — Binary protocol, faster than SFTP for bulk transfers
- S3 support — AWS S3, Cloudflare R2, Backblaze B2 (experimental)
- Metadata preservation — Symlinks, permissions, xattrs, ACLs
Platform Support
| Platform | Status |
|---|---|
| macOS | Fully tested |
| Linux | Fully tested |
| Windows | Untested (should compile) |
Contributing
Contributions welcome! See CONTRIBUTING.md.
License
MIT — see LICENSE.
Dependencies
~30–55MB
~809K SLoC