I assume the title has a typo and that it's supposed to say "written <i>in</i> Go".<p>With that said, as a user of a tool/library/service, why should I care what language it's written in?<p>I want to know if a data-syncing tool is reliable or not. I know rsync is, but OK that's not always super-duper fast.<p>I know volume-streaming with btrfs and ZFS works wonders, without the need to do manual book-keeping of a secondary state and hoping you ALWAYS keep that secondary state up to date. I doubt this out-performs the FS just doing the job itself, and it sounds much more prone to user error.<p>So what does this offer over those? It sounds like it has less features and is not as reliable. Being written in Go offers me nothing I don't already have.
It's late and maybe I missed something looking through the code, but what happens if you don't have write permissions on the directory that the statefile is in? The copy operation is performed but then the state is lost when the statefile rename fails.
A former colleague has written something quite similar[0] few years ago, which we used to backup encrypted disks (actually snapshots of encrypted disks to be precise).<p>[0] <a href="http://chunksync.florz.de/" rel="nofollow">http://chunksync.florz.de/</a>
this is great. I wonder how it would perform when I need to sync 10mil. files. Rsync and anything else breaks down at this point, well it does work but it takes forever and rsync bloats to 10-20GB memory foot print and after a few hours starts streaming updates.