syncz 0.1.5

Zero-config file sync between local and remote machines using rsync + ssh
syncz-0.1.5 is not a library.

Features

  • Smart Path Mapping~/projects/foo syncs to ~/projects/foo on 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 --watch to 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:

cargo install syncz

Requires rsync and ssh in your PATH.

Quick Start

# Sync both ways (default)
syncz ~/projects/my-app my-server

# Watch for changes and push automatically
syncz --watch ~/projects/my-app my-server

# Sync everything (including node_modules, etc.)
syncz --all ~/projects/my-app my-server

# Respect .gitignore and backup overwrites
syncz --gitignore --backup ~/projects/my-app my-server

Usage

syncz [OPTIONS] <PATH> [HOST]
Option Description
--push Push from local to remote (disables bidirectional)
--pull Pull from remote to local (disables bidirectional)
--watch Watch for local changes and sync (Push mode)
--all Disable default smart excludes
--gitignore Respect .gitignore file
--max-size <S> Exclude files larger than SIZE
--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

  1. Path Mapping — Translates local paths to remote equivalents relative to ~
  2. Auto mkdir — Creates missing parent directories on the remote
  3. SSH Multiplexing — Reuses connections via ControlMaster for speed
  4. Delta Transfer — Only syncs what's changed

License

MIT