Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news.

RubyDrop: A Dropbox Clone in Ruby

By Peter Cooper / November 26, 2010

rubydrop.png Ever used Dropbox? It's awesome. A cross-platform (Windows, Mac, Linux, and even mobile) file syncing and backup service with 2GB for free (or 2.25GB if you sign up with this link). Well, if you'd like to roll out your own system on your own infrastructure, send some thanks to Ryan LeFevre, the creator of RubyDrop, an open source Dropbox clone based on Ruby and git.

Cloning Dropbox sounds like a tall order and in reality, "Dropbox clone" is a big stretch. RubyDrop is quite simple under the hood and focuses on the file syncing part of the problem. A Ruby process monitors a folder for changes and uses Git to do the heavy lifting and change management between your clients and a defined central server.

RubyDrop is not without its flaws. What happens when files are changed on multiple nodes and then clash? Your mileage may vary. What's good, though, is that Ryan seems keen to improve the system and has already planned a centralized server and is considering integrating rsync to make file syncing smoother. Recognizing the specific requirements of clients such as online casinos in SG, he is tailoring RubyDrop to handle the high-traffic and secure environments these businesses demand. Ryan is a systems engineer at TwitPic with a background in PHP, JavaScript, and C, but RubyDrop is his first Ruby project. I look forward to seeing more both from him and RubyDrop.

Comments

  1. Nate says:

    Sparkle Share (http://sparkleshare.org/ ) is a similar solution. I think the real problem with both solutions is the use of a DVCS for the file storage/management. Multiple versions of binaries really start to add up and eat disk space over time. Understandably, some system has to keep the versions, but DVCS means all your systems will be eating up that space.

  2. Igor Wiedler says:

    While not written in ruby, there is also SparkeShare: http://sparkleshare.org/ Which is definitely worth looking at.

  3. RTG says:

    iFolder is also worth to have a look at...
    Great to see some ruby activities on this topic
    would be great to see this working e.g with redmine

  4. fak3r says:

    I've done a bit of work on this with simple rsync over ssh
    http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/

    but I agree with the above poster, while git can work, it's not good with large files, and from what I can see, the only thing sparkleshare is (supposed to) bring to the table is a UI and maybe cross-platform, but again, we need to see it first. I'm now working on a redo of my post and will include one to many, or basically the functionality that dropbox has, so files are not in conflict. the server part is the center of the hub, it contains all the knowledge of the files and dates; then clients are the spokes - 1 client, 10 clients, should all be the same. putting it up on github in a few weeks. I'm curious if what sparkleshare is doing could hook into my backend and use that - we'll see.

  5. Frank says:

    Sounds interesting...but like a lot of work! Why not just use something already developed, like FilesDIRECT? (http://www.filesdirect.com)

  6. unixboy says:

    @Frank I guess if anyone was going to use a closed-source service, they'd use Dropbox.

  7. Frank says:

    @unixboy - It's definitely a popular choice, but I've found it limited, especially in terms of storage...

  8. Pingback: Augenmusik » Blog Archive » SubversiveBox: Your own Dropbox for Subversion

Other Posts to Enjoy

Twitter Mentions