sysrsync
Simple and safe python wrapper for calling system rsync
What it is and what it does
sysrsync is a Python wrapper around the system rsync command that abstracts away rsync's notoriously confusing trailing-slash behavior and provides a Pythonic API for file and directory synchronization. It handles local-to-local, local-to-remote, and remote-to-local transfers via SSH, with support for exclusion patterns, custom rsync options, private key authentication, and port configuration.
The package is designed for developers who need to script rsync operations without shell escaping or manual command construction. It runs rsync as a subprocess and returns a CompletedProcess object, raising RsyncError on non-zero exit codes when strict mode is enabled. Its main dependencies are minimal—only toml for configuration parsing—but it requires rsync to be installed on the host system.
Use it for:
- Automate backup scripts that sync directories to remote servers over SSH with specific exclusion patterns.
- Build deployment pipelines that synchronize application files to production hosts with custom rsync options.
- Write data migration tools that transfer large file trees between local and remote systems with progress tracking.
- Integrate file synchronization into Python applications without spawning shell commands directly.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Wraps the system rsync command for Python, providing a safe interface to synchronize files and directories with control over source/destination trailing-slash behavior, SSH options, exclusions, and private keys.
Yes, if you need rsync automation in Python and can tolerate dormant maintenance. The package is stable and has no known vulnerabilities, but expect no active support or updates. Verify the unclear license before use in proprietary projects. Install friction is minimal and the API is straightforward; it's a reasonable choice for one-off scripts or internal tools where you control the rsync version.
Install
sysrsync on PyPI
pip
pip install sysrsyncuv
uv add sysrsyncpoetry
poetry add sysrsyncInstalling sysrsync
Before you install
Low install friction; pure Python wheel with a single runtime dependency (toml). Maintenance is dormant—last release was 2023-04-24 and last commit 2024-01-22, so expect no active bug fixes or feature updates.
License in practice
License treatment is unclear; no SPDX identifier or raw license text is available in the metadata. Verify the actual license before use in proprietary or copyleft-sensitive contexts.
Quickstart
pip install sysrsync
import sysrsync
sysrsync.run(source='/home/user/files',
destination='/home/server/files',
destination_ssh='myserver',
options=['-a'])
Requires rsync to be installed on the system and accessible in PATH; Python 3.6 or later.
Verify before relying
- Whether the unclear license status reflects a missing declaration or a genuinely unresolved licensing question.
- Current compatibility with modern rsync versions and SSH configurations beyond what the description documents.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.6,<4.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — toml |
| Maintenance | dormant — 1,208 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 106,476/month — #12,650 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: sysrsync-1.1.1-py3-none-any.whl
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
sftprettyA Python3 wrapper around paramiko that…
permissive · top 15,000 on PyPI
rclone-pythonA Python wrapper that exposes rclone's cloud…
permissive · top 15,000 on PyPI
ssh-pythonPython bindings to the libssh C library for SSH…
copyleft · top 15,000 on PyPI
dirsyncSynchronizes, updates, or reports differences…
permissive · top 15,000 on PyPI
uart-devicesProvides a Python interface to interact with…
permissive · top 15,000 on PyPI
scpProvides file transfer over SSH using the SCP…
copyleft · top 5,000 on PyPI
vdirsyncerVdirsyncer is a command-line tool that…
permissive · top 15,000 on PyPI
sshfsProvides an fsspec-compatible filesystem…
permissive · top 5,000 on PyPI
spurProvides a unified Python interface to run…
permissive · top 15,000 on PyPI
asyncsshAsyncSSH provides an asynchronous SSH client…
copyleft · top 5,000 on PyPI