MakeDrive 是由 Mozilla 基于 node.js 和 filer 两个 JavaScript 框架开发的一款全新的 Web 端离线文件同步系统。它提供了一套可让其它应用使用的同步服务,从而使用户可以完全掌控他们分散存储的数据、文件的生命周期。
MakeDrive 的核心研发者之一 David Humphrey 这样描述它:
想象一下 Web 版的 Dropbox,我们不需要安装任何软件,就可以在不同的浏览器、应用程序以及移动应用之间共享文件和文件夹。这就是 MakeDrive 要达到的目的。
但是 MakeDrive 的主要目的却并不是备份,而是在 Web 页面中融合多元数据和信息,这一点是与 Dropbox 所不同的地方。一旦 Mozilla 的 WebMaker 工具集与 MakeDrive 结合起来,就可以让用户自己创建多元信息、多页面的 Web 应用从而代替单页面的 Web 应用,并且可以在不同的浏览器、不同的设备上使用所创建的 Web 应用。
事实上,David 启动这个项目的初衷是希望能让 Brackets (一个在线的代码编辑器)在浏览器中运行。这里有一些展示它们如何进行集成的示例代码。
但是,很显然,该项目使用的应用程序超出了Mozilla 特定的应用场景。
MakeDrive 的一个主要功能是为 Web 应用提供离线同步模式,以满足一些特定的应用场景下的需求。试想一下,某一个基于浏览器的游戏,可以在离线状态下保存数据,并定期检测设备是否联网,如果检测到已联网就将离线数据进行同步,从而达到跨设备的数据共享。或者在使用一个 FTP 客户端的情景下,你不需要手动上传有变更的文件,同步服务会为你自动上传有变更的文件。
不过 David 自己也表示,现在这个项目还在初级阶段,还未到正式发布的时候。
上周五,我们的暑期工作已接近了尾声,并且在工作过程中我们以最大努力遵守了 Rob Pike 的编程 5 项原则。具体来说就是我们在让项目运行起来之前就先行做了一部分工作,以确保速度和可伸缩性。到了下个季度,我们工作的重心会转移到性能、内存管理、部署调试还有可伸缩性方面。
MakeDrive 中的一些概念和值得你们感兴趣的信息:
- 文件系统是指用户所持有的东西。在 Mozilla 的语境中,它或许是一个 WebMaker(集成了 Mozilla 提供的 MakeDrive 同步服务),也有可能它就是 MakeDrive 服务。
- MakeDrive 可作为一个服务被其他应用使用,比如 Nimble 和 AppMaker 就可以使用相同的 MakeDrive 文件系统。
- MakeDrive 不维护文件的历史版本,也就是不提供文件的版本追溯。取而代之的是受到 rsync 启发的循环校验和差分算法来驱动同步,就是只对每个文件有变动的那部分进行同步,而不是暴力的替换整个文件(这点与 Dropbox 类似)。
- 目前针对部分 Web 资源(HTML, CSS)进行了优化,对一些体积较大的资源文件(比如照片、视频)的优化还有待提升。
- 使用本地数据库进行备份存储,在 IE、Firefox、Chrome 下支持 IndexedDB ,在 Safari 下支持 WebSQL,而 Opera 同时支持这两种数据库。
正如在 epayne notes 中提到的,MakeDrive 似乎已成为将互联网数据掌握在用户自己手中大潮流的一部分了。
你们可以在这里下载该项目 MakeDrive Github project ,以及通过 Mozilla wiki 了解更多信息。也可以通过 David 的博客了解更多的细节内容。
查看英文链接: MakeDrive: Syncing Filesystem for the Web from Mozilla
感谢邵思华对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论