replican-sync - Filesystem synchronization for Go
At this point, I'm working self-consistency and simplicity into the library as I develop on it. The API is subject to change.
- Linux, OSX, MinGW
- Hierarchical, content-addressable filesystem model down to the block level.
- Match and patch files with rolling checksum and strong cryptographic hash.
- Match and patch directory structures.
In order of current precedence.
- (NEW) Simple version tracking and automated merge between stores.
- Emphasis on the 'simple'! This isn't going to be a DVCS! :)
- Synchronization behavior options (filtering, handling deletes, etc.)
- Handle symbolic links.
- Performance benchmarking, tuning, optimization.
See rp.go, fs_test.go and merge_test.go for examples.
I'm working on a decentralized folder synchronization service/application. replican-sync is just the first step.
MIT, see LICENSE. If you use replican-sync, I'd like to hear from you.
replican is developed in Go.
You'll need to first goinstall:
Run gb from the top level.
'gb -t' to execute unit tests.
Indexing, matching & patching are tested with a little utility that fabricates directory structures of arbitrary random, but reproducible binary data. See replican/treegen.