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.

Indexes

B+Tree

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

Data Model

Document / XML

PouchDB uses an unstructured document data model, where documents are JSON-formatted.

Query Interface

Custom API

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

Checkpoints

Non-Blocking

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.