Technical features

Jake is a client application for collaboratively working on a folder.

Here is an indepth explanation of how Jake works.

Jake communication

XMPP

Jake connects to the XMPP/Google talk server where your account is and behaves similar to a IM client (but does not try to replace it).

The smack library helps us with that.

Peer-to-Peer File transfers

File transfers between clients occur peer-to-peer (with the negotiation of IP addresses over XMPP), or, as a last resort.

The ice4j library helps us with that.

Smart File transfers

Jake uses the same mechanisms as rsync, to only transmit changes in files. So if you change 1 byte in a 1GB file, only the change will be transmitted.

The jarsync library helps us with that.