Repolode
bcpierce00

bcpierce00/unison

Unison is a cross-platform file synchronizer that propagates changes between two replicas of a directory tree, flagging conflicts for review.

Open-source alternative to:DropboxResilio Sync

Stars
5,570
Forks
278
Open issues
106
Last commit
2 months ago

What is it?

Unison keeps two replicas of a collection of files and directories in step. The replicas can live on different hosts or on different disks of the same machine, and each can be edited separately. Unison then propagates the changes to the other side, applying non-conflicting updates automatically and presenting conflicting ones for a decision.

Unlike mirroring or backup tools, it handles edits made on both sides. Unlike many network filesystems, it keeps real copies of the data, so synchronized files stay readable and writable while offline. It runs as an ordinary user-level program without kernel changes, superuser rights, or FUSE, and typically connects over ssh or directly over TCP. Transfers of small changes to large files use an rsync-like compression protocol to save bandwidth. It also supports a repeat mode with a filesystem monitor for near-immediate sync.

Unison runs on POSIX systems such as BSD, GNU/Linux and macOS, as well as Windows. It is distributed as source code under GPL-3.0, and many Linux distributions package it as a binary.

Key features

  • 01Two-way sync that detects and displays conflicting edits on both replicas.
  • 02Works across Windows and POSIX systems such as Linux, macOS and BSD.
  • 03Connects over ssh or plain TCP without kernel changes, root access or FUSE.
  • 04Uses rsync-style delta transfers to save bandwidth on large files with small changes.
  • 05Optional repeat mode with a filesystem monitor for near-real-time sync.

Use cases

  • Keeping a Windows laptop and a Unix server in sync with each other.
  • Syncing project or document folders between a home machine and a remote host over ssh.
  • Maintaining offline-usable copies of data on a laptop that is sometimes disconnected.
  • Mirroring files between two disks on the same machine while handling edits on both sides.

Quick start

  1. 1

    Read the building instructions in INSTALL.md

  2. 2

    Install a binary package from your system's packaging system (e.g. a GNU/Linux distribution)

Things to know

  • Only a very small number of people actively maintain it.
  • Earlier releases are no longer maintained, so you should use the latest release or git master.
  • Licensed under GPL-3.0, a copyleft license.

Topics

#file-sync#synchronization#backup#ssh#cross-platform#rsync#ocaml

FAQ

What is unison?
Unison is a cross-platform file synchronizer that propagates changes between two replicas of a directory tree, flagging conflicts for review. Unison keeps two replicas of a collection of files and directories in step. The replicas can live on different hosts or on different disks of the same machine, and each can be edited separately. Unison then propagates the changes to the other side, applying non-conflicting updates automatically and presenting conflicting ones for a decision.
Is unison free to use? What license does it have?
unison is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
Is unison still maintained?
Updated within 6 months. The last commit to unison was on Sep 20, 2026.
What can I use unison for?
Keeping a Windows laptop and a Unix server in sync with each other. Syncing project or document folders between a home machine and a remote host over ssh. Maintaining offline-usable copies of data on a laptop that is sometimes disconnected. Mirroring files between two disks on the same machine while handling edits on both sides.
How do I install unison?
Read the building instructions in INSTALL.md Install a binary package from your system's packaging system (e.g. a GNU/Linux distribution)
Where can I get unison?
The source code and installation instructions are on GitHub: https://github.com/bcpierce00/unison

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects