Monthly Downloads: 36
Programming language: Haskell
License: MIT License
Tags: Utility    
Latest version: v0.3.8.5

sync-mht alternatives and similar packages

Based on the "Utils" category.
Alternatively, view sync-mht alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of sync-mht or a related project?

Add another 'Utils' Package



Build Status codecov.io Hackage Release Stackage LTS 6 Stackage Nightly


Fast incremental file transfer using Hash-Trees


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.


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.


Installing the latest release of sync-mht with stack:

stack install sync-mht


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

git clone --recursive https://github.com/ekarayel/sync-mht.git
cd sync-mht
stack exec runhaskell configure.hs
stack install