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]
- Website
- https://pouchdb.com[01]
- Source Code
- https://github.com/apache/pouchdb[02]
- Tech Docs
- https://pouchdb.com/guides[03]
- Country of Origin
- US
- Start Year
- 2010 [09]
- Project Type
- Open Source
- Written in
- JavaScript
- Derived From
- CouchDB
- Inspired By
- CouchDB
- License
- Apache v2
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- PouchDB, the JavaScript Database that Syncs! pouchdb.com
- GitHub - apache/pouchdb: :kangaroo: - PouchDB is a pocket-sized database. · GitHub github.com
- Introduction to PouchDB pouchdb.com
- GitHub - pouchdb-community/transform-pouch: PouchDB plugin for modifying documents before and after storage in the database. · GitHub github.com
- FAQ pouchdb.com
- https://pouchdb.com/guides/documents.html pouchdb.com
- pouchdb/packages/node_modules/pouchdb-find at master · apache/pouchdb · GitHub github.com
- API Reference pouchdb.com
- Initial skeleton. github.com