DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

PouchDB


PouchDB is a free and open-source JavaScript DBMS inspired by Apache CouchDB (document-oriented NoSQL DBMS) that is designed to run inside a web browser. It was designed with the intention of serving web developers and to run smoothly within a browser. Applications utilize a system where, while offline, data is stored locally, then, when back online, the data is synchronized with Apache CouchDB and between clients. Thus, data is synchronized regardless of login context.[01]

Source Code
https://github.com/apache/pouchdb[02]
Country of Origin
US
Start Year
2010 [09]
Project Type
Open Source
Written in
JavaScript
Derived From
CouchDB
Inspired By
CouchDB
License
Apache v2

Database Entry

PouchDB


PouchDB is a free and open-source JavaScript DBMS inspired by Apache CouchDB (document-oriented NoSQL DBMS) that is designed to run inside a web browser. It was designed with the intention of serving web developers and to run smoothly within a browser. Applications utilize a system where, while offline, data is stored locally, then, when back online, the data is synchronized with Apache CouchDB and between clients. Thus, data is synchronized regardless of login context.[01]

Checkpoints


PouchDB allows users to enable or disable replication checkpoints (which would be modified based on system performance goals and/or usage), which are used for synchronization across the local and remote servers. These checkpoints are non-blocking.

Compression[04]


PouchDB doesn't currently support compression by default, however there is a plugin (Transform Pouch) that allows for compression of data.

Data Model[05][06]


PouchDB uses an unstructured document data model, where documents are JSON serializable. It also supports attachments, which store binary data.

Indexes[07]


Starting with version 2.2.0, PouchDB supports secondary indexes using B-trees. The default index is build on the _id field.

Query Interface[08]


PouchDB utilizes a custom API for its query interface. As it is designed for web browsers, this API supports callbacks, promises, and async functions.

Citations

9 sources
  1. PouchDB, the JavaScript Database that Syncs! pouchdb.com
  2. GitHub - apache/pouchdb: :kangaroo: - PouchDB is a pocket-sized database. · GitHub github.com
  3. Introduction to PouchDB pouchdb.com
  4. GitHub - pouchdb-community/transform-pouch: PouchDB plugin for modifying documents before and after storage in the database. · GitHub github.com
  5. FAQ pouchdb.com
  6. https://pouchdb.com/guides/documents.html pouchdb.com
  7. pouchdb/packages/node_modules/pouchdb-find at master · apache/pouchdb · GitHub github.com
  8. API Reference pouchdb.com
  9. Initial skeleton. github.com
Revision #13 Last Updated: