All Projects → ekarayel → sync-mht

ekarayel / sync-mht

Licence: MIT license
Synchronize directory hierarchies using Hash-Tree's

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to sync-mht

Bus
Efficient, lock-free, bounded Rust broadcast channel
Stars: ✭ 368 (+1652.38%)
Mutual labels:  synchronization, communication
old-audiosync
First implementation of the audio synchronization feature for Vidify, now obsolete
Stars: ✭ 16 (-23.81%)
Mutual labels:  synchronization
tidymodules
An Object-Oriented approach to Shiny modules
Stars: ✭ 110 (+423.81%)
Mutual labels:  communication
SilentNotes
SilentNotes is a simple note taking app which respects your privacy.
Stars: ✭ 98 (+366.67%)
Mutual labels:  synchronization
solidproject.org
Website for solidproject.org
Stars: ✭ 115 (+447.62%)
Mutual labels:  communication
libfmp
libfmp - Python package for teaching and learning Fundamentals of Music Processing (FMP)
Stars: ✭ 71 (+238.1%)
Mutual labels:  synchronization
vscp
VSCP (Very Simple Control Protocol) IoT/m2m framework
Stars: ✭ 47 (+123.81%)
Mutual labels:  communication
syncwatch
Browser extension to watch videos together
Stars: ✭ 48 (+128.57%)
Mutual labels:  synchronization
nextcloud-grauphel
Tomboy note synchronization REST server nextcloud app
Stars: ✭ 53 (+152.38%)
Mutual labels:  synchronization
cylon-deb
TUI menu driven bash shell script to update and maintain a Debian based Linux distro.
Stars: ✭ 23 (+9.52%)
Mutual labels:  communication
ESPNtpClient
High accuracy NTP library for ESP32 and ESP8266
Stars: ✭ 81 (+285.71%)
Mutual labels:  synchronization
arduino-ble-gadget
Create your own Do-It-Yourself BLE enabled sensor gadget on the ESP32 platform.
Stars: ✭ 31 (+47.62%)
Mutual labels:  communication
syncdir
Automatically discover peers and synchronize a folder
Stars: ✭ 30 (+42.86%)
Mutual labels:  synchronization
AudioAlign
Audio Synchronization and Analysis Tool
Stars: ✭ 80 (+280.95%)
Mutual labels:  synchronization
ibridge
Typesafe iframe bridge for easy parent child bidirectional communication
Stars: ✭ 25 (+19.05%)
Mutual labels:  communication
triple-buffer
Implementation of triple buffering in Rust
Stars: ✭ 66 (+214.29%)
Mutual labels:  synchronization
AsyncLock
An async/await-friendly lock for .NET, complete with asynchronous waits, safe reëntrance, and more.
Stars: ✭ 106 (+404.76%)
Mutual labels:  synchronization
Channelize-iOS-Chat-SDK-Sample
Open-source JavaScript SDK to enable Real-time Messaging
Stars: ✭ 30 (+42.86%)
Mutual labels:  communication
accelerator-core-ios
Syntax sugar of OpenTok iOS SDK with Audio/Video communication including screen sharing
Stars: ✭ 30 (+42.86%)
Mutual labels:  communication
TAOMP
《多处理器编程的艺术》一书中的示例代码实现,带有注释与单元测试
Stars: ✭ 39 (+85.71%)
Mutual labels:  synchronization

sync-mht

Hackage Release Stackage LTS 6 Stackage Nightly

Synopsis

Fast incremental file transfer using Hash-Trees

Description

A command line tool that can be used to incrementally synchronize a directory hierarchy with a second one. It is using a Hash-Tree to compare the folders, such that the synchronizatio time and communication (round) complexity grows only logarithmically with the size of the directories (assuming the actual difference of the directories is small).

The communication happens through standard streams between parent and child processes, which can easily be routed through remote command execution tools.

Examples

The following command

sync-mht -s foo/ -d bar

will synchronize the local folder bar/ with the local folder foo/, but

sync-mht -s foo/ -d remote:/bar -r "ssh [email protected] sync-mht"

will synchronize the folder bar/ in the home directory of the user fred on the host machine example.org with the local folder foo/.

It is also possible to use it with docker, e.g.

sync-mht -s foo/ -d remote:/bar -r "docker run -i --volumes-from bar ekarayel/sync-mht sync-mht"

to synchronize the folder /bar (of the container named bar) with the local folder foo/.

By default sync-mht will only show a statistic about the difference between the source and destination directories. The options --add, --update and --delete respectively allow copying of files to the target directory, updating files that are already in the target directory - not matching the contents in the source directory and deleting files that are in the destination directory but not in the source directory.

Contribution

If you want to contribute - cloning the latest commit and building can be done using the following steps:

git clone https://github.com/ekarayel/sync-mht.git
cd sync-mht
stack install
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].