Skip to content

vanackere/replican-sync

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

replican-sync - Filesystem synchronization for Go

Features

replican-sync provides local file & directory synchronization with an implementation of the rsync algorithm. It is not compatible with the wire protocols and indexing used in the rsync(1) utility.

Implemented

  • 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.

Planned/In Development

  • Handle symbolic links.
  • Synchronization behavior options (filtering, handling deletes, etc.)
  • Performance benchmarking, tuning, optimization.

Getting Started

goinstall github.com/cmars/replican-sync/replican/sync

See rp.go, fs_test.go and merge_test.go for examples.

Why?

I'm working on a decentralized folder synchronization service/application. replican-sync is just the first step.

License

MIT, see LICENSE. If you use replican-sync, I'd like to hear from you.

Developers

replican is developed in Go.

Building

You'll need to first goinstall:

  • github.com/bmizerany/assert
  • optarg.googlecode.com/hg/optarg

Run gb from the top level.

Testing

'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.

About

Filesystem synchronization for Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%