Giter Club home page Giter Club logo

replican-sync's Introduction

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.

replican-sync's People

Contributors

cmars avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.