PouchDB:一款受CouchDB启发的离线Web数据库

openkk 12年前

  PouchDB 是受 Apache CouchDB 启发为 Web 设计的一款占用空间少的数据库。它尤其适合于需要基于浏览器的可离线使用的存储方案的移动应用。该数据库可与 CouchDB 同步,也可与在线设备上的其他 PouchDB 同步。

  PouchDB 实际是一个 JavaScript 库,压缩格式下大小为 131KB。目前它能做的基础任务有:数据库的创建、查询、复制与删除;文档(集)的创建、获取、更新及删除;查询数据库信息并监听数据库变化。

  该数据库还带有一个 HTTP RESTful 适配器用于与其他 CouchDB 或 PouchDB 数据库进行同步。

  PouchDB 使用 HTML5 IndexedDB API 访问浏览器的底层存储引擎,如 Firefox 的 SQLite 和 Chrome 的 LevelDB。对于 Web SQL、本地存储和 node.js 的支持正在进行当中。不幸的是,Web SQL 已经被 W3C 弃用,但 PouchDB 仍将支持它,因为“移动浏览器对 IndexedDB 的支持远远落后于 Web SQL”,PouchDB 的作者 Dale Harvey 说。

  当被问及 PouchDB 的价值可在哪些场景中体现时,Harvey 说:

任何需要离线工作的 Web 应用(移动或其他),而且我相信大多数移动应用都需要离线工作。任何离线或“在云中”工作的应用都将面临可靠的数据同步的问题,它们都可能会使用 PouchDB。我能想到的显然的例子有待办工作列表和数据管理类的应用。

  Harvey 补充,当将 PouchDB 与离线安装的 CouchDB 相比时:

CouchDB 在服务器上表现很棒,但是,它显然不可能在一个离线的 Web 应用中工作。PouchDB 是一个很小的可嵌入在浏览器中运行的 CouchDB,一旦在线,它又能与功能更为强大的 CouchDB 进行交互。

  目前 PouchDB 正处在 alpha 版,已经在 Firefox+12 和 Google 19+ 上通过测试。它几乎能运行在所有实现了 IndexedDB API 的浏览器中。其代码可从 GitHub 下载,它采用 Apache 2.0 许可。