replican-sync

module
v0.0.0-...-08e1f15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2011 License: MIT

README

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.

Status

At this point, I'm working self-consistency and simplicity into the library as I develop on it. The API is subject to change.

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

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.

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.

Directories

Path Synopsis
replican
fs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL