parsync is a high-throughput, resumable pull sync from SSH remotes, with
parallel file transfers and optional block-delta sync.
Linux and macOS:
curl -fsSL https://alpindale.net/install.sh | bashWindows:
powershell -ExecutionPolicy Bypass -c "irm https://alpindale.net/install.ps1 | iex"You can also install with cargo:
cargo install parsyncYou may also download the binary for your platform from the releases page, or install from source:
make build
make install- Linux:
x86_64-unknown-linux-gnu,aarch64-unknown-linux-gnu - macOS:
aarch64-apple-darwin,x86_64-apple-darwin - Windows:
x86_64-pc-windows-msvc(best-effort metadata support)
parsync -vrPlu user@example.com:/remote/path /local/destinationWith non-default SSH port:
parsync -vrPlu user@example.com:2222:/remote/path /local/destinationSSH config host aliases are supported.
parsync -vrPlu --jobs 16 --chunk-size 16777216 --chunk-threshold 134217728 user@host:/src /dstBalanced mode defaults:
- no per-file
sync_allbarriers (atomic rename preserved) - existing-file digest checks are skipped unless requested
- chunk completion state is committed in batches
- post-transfer remote mutation
statcheck is skipped (enabled in strict mode)
Throughput flags:
--strict-durability: enable fsync-heavy strict mode--verify-existing: hash existing files before skip decisions--sftp-read-concurrency: parallel per-file read requests for large files--sftp-read-chunk-size: read request size for SFTP range pulls
-A,-X: warn and continue (unsupported)-o,-g: warn and continue (unsupported)-p: best-effort (readonly mapping), then continue-l: attempts symlink creation; if OS/privilege disallows it, symlink is skipped with warning
Enable strict mode to hard-fail on unsupported behavior:
parsync --strict-windows-metadata -vrPlu user@host:/src C:\\dstWindows symlink creation usually requires one of:
- Administrator privileges
- Developer Mode enabled
If not available, -l may skip symlinks (or fail with --strict-windows-metadata).
