3 releases

Uses new Rust 2024

new 0.1.2 Apr 8, 2026
0.1.1 Apr 8, 2026
0.1.0 Nov 2, 2025

#411 in Filesystem

GPL-3.0 license

24KB
457 lines

CarSync

CarSync - rsync with cars!

Features

  • Fast parallel file synchronization
  • Checksum-based comparison for accurate syncing
  • Optional deletion of extra files
  • Dry-run mode to preview changes
  • Progress bars with cat-themed messages
  • Memory-mapped I/O for large files
  • Optional compression for transfer-heavy workloads
  • Delta transfer mode for changed files

Installation

From crates.io

cargo install carsync

From source

git clone https://github.com/Diplo2by/carsync
cd carsync
cargo install --path .

Usage

Basic recursive sync:

carsync -r /source/path /destination/path

Options

  • -r, --recursive - Crawl through subdirectories recursively
  • -n, --dry-run - Just stalk, don't pounce (preview mode)
  • -v, --verbose - Meow loudly about what's happening
  • -c, --checksum - Compare files by checksum (sniff carefully)
  • -d, --delta - Use delta transfer for changed files (only changed chunks hitch a ride)
  • -z, --compress - Compress file data during transfer
  • --compression-level <LEVEL> - Compression level for --compress (-7 to 22, default 3)
  • --delete - Delete files that don't belong (knock them off the table)

Examples

Sync directories with verbose output:

carsync -r -v ~/Documents ~/Backup/Documents

Preview what would be synced (dry run):

carsync -r -n ~/Photos ~/Backup/Photos

Sync with checksum verification:

carsync -r -c ~/Projects ~/Backup/Projects

Sync with delta transfer (only changed chunks transferred):

carsync -r -d ~/Projects ~/Backup/Projects

Sync and delete extra files in destination:

carsync -r --delete ~/Music ~/Backup/Music

Sync with compression enabled:

carsync -r -z ~/Data ~/Backup/Data

Sync with a custom compression level:

carsync -r -z --compression-level 8 ~/Data ~/Backup/Data

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Dependencies

~8–12MB
~208K SLoC