Documentation

rusync

rsync implemented in rust.

Caveat

We do everything we can to make sure data loss is impossible, but despite our best efforts, it may still happen.

Please make sure your files files are backed up if necessary before using rusync on sensitive data.

Thank you for your understanding!

Usage

$ cargo install rusync
$ rusync test/src test/dest
:: Syncing from test/src to test/dest …
 50% 24/50 Downloads/archlinux.iso   00:01:30

Features

  • Easy to remember command line syntax

  • Print progress on one line, and erase it when done, thus avoiding flooding your terminal with useless noise.

  • Un-surprising behavior: missing directories are created on the fly, files are only copied if:

    • Destination is missing
    • Older than the source
    • Or size is different
  • Minimalistic implementation

Missing

There are tons of stuff in rsync we don't implement.

But for me, the goal was to learn more about Rust and I've learned plenty of things already.

The big missing feature is an option to delete extraneous files. Maybe I'll start working on it one day.

Some people have asked for transfer over ssh. Not sure if that can be easily done. Maybe try using rusync normally on top of sshfs?

For the rest, well, patches are welcome!