Use file sync services (e.g. DropBox) to sync files between computers regardless of space limits on the sync service. For example, you have a DropBox account with 5 GB space, but you can sync an unlimited amount of disk space on your computer as long as individual files are less than 5 GB each.

When you register an account with DropBox or UbuntuOne or similar services, you are limited in disk space. This limit is usually something like 2 GB and then you can purchase a monthly subscription for more space. So what do you do if you want to sync 1 TB of data between several computers?

Syncing data with DropBox and UbuntuOne is really fast. But very limited in space. Let's say you have a large amount of data that doesn't change very often but changes needs to be synced across several computers. RainWater will build a map over all the files you want to sync on a master computer. That map will then sync through your service to slave computers. When RainWater receives such a map on a slave computer, it will put up a request map for missing files to the master computer. The request map file will then sync back through your service to the master computer. RainWater will then copy files over, a few at a time depending on space limit, so that they can be synced. When the slave computer has received files, it will delete them from the sync folder, freeing up space on the account. Then the master computer can send a few more files, and the process continues until all files are synced.

RainWater will not instantly update files. It will work slowly to keep several computers up to date. And it works with one master syncing down to an unlimited number of slaves, it is not bi-directional. Therefore, it is not a replacement for existing services. It is just a way to mirror data. Think of the master computer as the cloud which rains small drops of files through the service (i.e. DropBox) and the drops gather up in puddles (i.e. slave computers).

Currently looking for contributors! I don't have time at the moment to work on this project.