6,598 open-source and SaaS tools, with GitHub stats refreshed every day.

Unison

Open source

A cross-platform file synchronizer that keeps two copies of a directory tree up to date and detects conflicts when both sides change.

Open-source alternative to

GitHub stars
5.5k
Last commit
12 days ago
Repository age
10 years
Version
v2.54.0
Licence
GPL-3.0
Self-hosted
Yes

About Unison

Unison is a file-synchronization tool for POSIX systems such as BSD, GNU/Linux and macOS, as well as Windows. It keeps two copies of a directory tree in step. The copies can sit on different machines or on separate disks of one machine, can each be modified on their own, and are reconciled later by carrying every side's changes across to the other.

It differs from plain mirroring or backup tools in handling edits made on both sides: changes that do not conflict are propagated automatically, while conflicting ones are detected and displayed. It runs as an ordinary user-level program, so no kernel changes, superuser rights or FUSE are needed, and data is copied so it can be read and written offline.

Machines are usually connected over ssh, though direct TCP also works, and the tool is careful with bandwidth so it performs reasonably over slow links. It can synchronize a Windows laptop with a Unix server, for example. Written in OCaml and licensed under GPL-3.0, it has been in use for more than twenty-five years.

Key features

  • Two-way synchronization between two replicas
  • Conflict detection with changes displayed
  • Works across Windows, macOS and Linux
  • Runs over ssh or direct TCP
  • No superuser privileges or kernel changes needed
  • Bandwidth-conscious transfers over slow links

Good fit for

  • →Syncing a laptop with a server
  • →Keeping directories consistent across machines
  • →Offline-capable file replication
Built with
OCaml
Tags
file-synchronization
sync
ocaml
ssh
cross-platform
command-line
replication

Open-source alternatives to Unison

See all

SaaS alternatives to Unison

See all