BT

New Early adopter or innovator? InfoQ has been working on some new features for you. Learn more

MakeDrive: Syncing Filesystem for the Web from Mozilla

| by Roopesh Shenoy Follow 0 Followers on Sep 02, 2014. Estimated reading time: 2 minutes |

MakeDrive is a new offline-first, syncing filesystem for the web, from Mozilla. Built on node.js and filer, it provides a sync service that other apps can use, while user retains full control of where her data lives.

David Humphrey, one of the main developers behind MakeDrive, describes what it is all about -

Imagine Dropbox in a web page, without installing any software, and being able to share files and folders between different browsers, applications, and mobile apps. That's what MakeDrive is.

The difference is that the main purpose of MakeDrive is not backup; it's to enable web-making. Mozilla's WebMaker set of tools, once integrated with MakeDrive, could allow users to build multi-page apps instead of single page; and then create and access their web makes from different browsers and devices.

In fact, the reason David started work on this is to allow Brackets (an online code editor) to work in a browser. There is demo-code showing this integration.

However, clearly, the project has applications beyond Mozilla's specific use-case.

MakeDrive can primarily help in cases where offline-mode needs to be supported for a web-app. Imagine a browser-based game which has state held offline and synced periodically across devices. Or an FTP client, only, you wouldn't need to manually upload the modified files, the sync service will take care of it for you.

The project is still in early stages and is not ready for production yet. In David's own words -

On Friday we reached the end of our summer work, where we tried hard to follow Pike's 5 rules of programming; specifically, we made it work before we made it fast or scalable. In the fall we're switching gears to start focusing on performance, memory footprint, deployment, and scalability.

Some concepts and interesting things about MakeDrive -

  • A filesystem is something that a user has. In context of Mozilla, this can be a WebMaker user (who uses the MakeDrive sync server provided by Mozilla) but the MakeDrive server could be self-hosted as well.
  • MakeDrive is a service that other apps can use - Nimble and AppMaker, for e.g. can use the same MakeDrive filesystem.
  • MakeDrive does not maintain a file-history. Instead it uses a rolling-checksum and a differential algorithm inspired by rsync, to only send bits of a file that has changed (similar to Dropbox).
  • Currently optimised for web resources (HTML, CSS), and not large files (such as photos/videos)
  • Uses local DB as a backing store - IndexedDB for IE, Firefox and Chrome, WebSQL for Safari. Both for Opera.

As epayne notes, MakeDrive seems to be a part of a bigger movement towards a web with data in the hands of the user.

Check out the MakeDrive Github project, the Mozilla wiki, as well as David's announcement for more details. 

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT