Csync is a bidirectional file synchronization tool. The developer’s main purpose for csync is to implement roaming home directories for Linux clients using a central file server using PAM to synchronize when the user logs in and out. Instead of being it’s own protocol, by default using port 873 or whatever, it can use other protocols such as http, smb, or sftp so there is no need for a server component. Though I wonder how it compares in the nitty-gritty performance aspects which really matter when synchronizing lots of data over the Internet.