Hacker News new | past | comments | ask | show | jobs | submit login

Conceptually speaking, Mutagen and Unison are very similar (and actually I mentioned Benjamin Pierce's work in another comment here asking about the sync algorithm - fantastic stuff!). I tend to avoid direct comparisons because they always come across one-sided, but some cursory differences:

- Mutagen tries to integrate recursive filesystem watching very tightly into its synchronization loop to drive synchronization and allow for near-instant filesystem rescans

- Mutagen automatically copies an "agent" binary to remote systems to support synchronization, so no remote install is required

- Mutagen uses Protocol Buffers for its data storage, so synchronization sessions created with older versions continue to work with newer versions

- Mutagen written in Go, Unison in OCaml (which allows Mutagen broader platform support "for free")

- Mutagen tries to treat Windows as a first-class citizen

- Mutagen uses race-free traversal (e.g. openat, fstatat, unlinkat, etc.) to perform operations

Obviously the internal implementations are different, but both use differential (rsync-style) file transfers, both use the same reconciliation concepts, etc.

Mutagen has the advantage of Go, recursive filesystem watching, and modern POSIX/Windows APIs that didn't exist when Unison was originally written, though some of that functionality has been brought into Unison.

For a comparison with Syncthing (and to some extent Unison), check out this comment[0].

[0]: https://news.ycombinator.com/item?id=30966448




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: