Unison é uma ferramenta de sincronização de arquivos para Unix e Windows. Ele permite que duas réplicas de uma coleção de arquivos e diretórios sejam armazenadas em hosts diferentes (ou discos diferentes no mesmo host), modificadas separadamente e atualizadas ao propagar as alterações em cada réplica para a outra.
O Unison compartilha vários recursos com ferramentas como pacotes de gerenciamento de configuração (CVS, PRCS, Subversion, BitKeeper etc.), sistemas de arquivos distribuídos (Coda, etc.), utilitários de espelhamento unidirecionais (rsync, etc.), e outros sincronizadores (Intellisync, Reconcile, etc). No entanto, existem vários pontos em que isso difere:
O Unison é executado no Windows e em muitos tipos de sistemas Unix (Solaris, Linux, OS X, etc.). Além disso, o Unison funciona em diferentes plataformas, permitindo que você sincronize um laptop Windows com um servidor Unix, por exemplo.
Ao contrário dos utilitários simples de espelhamento ou backup, o Unison pode lidar com atualizações para as duas réplicas de uma estrutura de diretórios distribuída. Atualizações que não conflitam são propagadas automaticamente. Atualizações conflitantes são detectadas e exibidas. Ao contrário de um sistema de arquivos distribuído, o Unison é um programa no nível do usuário: não há necessidade de modificar o kernel ou ter privilégios de superusuário em qualquer host.
O Unison funciona entre qualquer par de máquinas conectadas à Internet, comunicando-se por um link de soquete direto ou por um encapsulamento em uma conexão ssh criptografada. Ele é cuidadoso com a largura de banda da rede e é executado bem em links lentos, como conexões PPP. As transferências de pequenas atualizações para arquivos grandes são otimizadas usando um protocolo de compactação semelhante ao rsync.
O uníssono é resistente ao fracasso. É cuidadoso em deixar as réplicas e suas próprias estruturas privadas em um estado sensível em todos os momentos, mesmo em caso de falhas anormais de finalização ou comunicação.
Unison tem uma especificação clara e precisa. O uníssono é livre; O código fonte completo está disponível sob a Licença Pública GNU.