Documentation
# rusync

<a href="https://crates.io/crates/rusync"><img src="https://img.shields.io/crates/v/rusync.svg"/></a>
<a href="https://travis-ci.org/dmerejkowsky/rusync"><img src="https://api.travis-ci.org/dmerejkowsky/rusync.svg?branch=master"/></a>

`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 sensible 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!