syncz-0.1.8 is not a library.
Features
- Smart Path Mapping —
~/projects/foosyncs to~/projects/fooon remote, regardless of different home paths - Zero Config — Just run it. No config files needed
- Bi-directional (Default) — Automatically syncs both ways (Newer Wins)
- Watch Mode — Use
--watchto automatically sync on file changes - Advanced Filtering — Sync everything with
--all, or respect--gitignore - Safety — Protect overwritten files with
--backup - SSH Host Picker — Fuzzy-select hosts from
~/.ssh/config - Sensible Defaults — Auto-excludes
.git/,node_modules/,target/,.DS_Store
Installation
Install via crates.io:
Requires
rsyncandsshin your PATH.
Quick Start
# Sync current directory with the last used host (Zero-Arg Sync!)
# Sync current directory with a specific host
# Watch for changes and push automatically
# Sync everything (including node_modules, etc.)
# Respect .gitignore and backup overwrites
Usage
syncz [OPTIONS] [PATH] [HOST]
| Option | Description |
|---|---|
[PATH] |
Local path to sync. Defaults to current directory (.) |
[HOST] |
SSH host. Defaults to last used host |
--push |
Push from local to remote (disables bidirectional) |
--pull |
Pull from remote to local (disables bidirectional) |
-w, --watch |
Watch for local changes and sync (Push mode) |
-a, --all |
Disable default smart excludes and size limits |
-l, --large |
Allow large files (>10MB) |
-g, --gitignore |
Respect .gitignore file |
--max-size <S> |
Exclude files larger than SIZE |
-b, --backup |
Backup updated files to .syncz-backups |
-d, --dry-run |
Preview changes with tree diff |
--no-perms |
Skip permission sync (useful for macOS/Linux) |
How It Works
- Path Mapping — Translates local paths to remote equivalents relative to
~ - Auto mkdir — Creates missing parent directories on the remote
- SSH Multiplexing — Reuses connections via ControlMaster for speed
- Delta Transfer — Only syncs what's changed
- Persistence — Remembers the last successful host in
~/.syncz_statefor one-word syncing
License
MIT