Skip to content
Minimalist rsync clone in rust
Rust Python Shell
Branch: master
Clone or download
Latest commit 69b3921 Jan 18, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Use -> Result<(), std::io::Error> for most tests May 11, 2019
tests
tools
.gitignore Add an example and more doc Oct 27, 2018
.travis.yml Let's add CI for mac and windows May 11, 2019
Cargo.lock
Cargo.toml
Changelog.md Update Changelog May 11, 2019
LICENSE Initial commit May 8, 2018
README.md Update README.md Jan 18, 2020
tbump.toml Bump to 0.5.2 May 11, 2019

README.md

rusync

Minimalist rsync clone 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.

  • Displays a reliable ETA, without sacrificing speed.

  • 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

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!

You can’t perform that action at this time.