PouchDB:一款受CouchDB啟發的離線Web數據庫
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 許可。