# Plugins and External Projects

Below is a list of known plugins, tools and projects can be used with PouchDB. Fork this page to add your own!

Plugins

#### PouchDB allDbs()

Revives the `allDbs()` function, which lists all PouchDB databases.

#### PouchDB Authentication

Plugin for CouchDB's authentication system.

#### PouchDB Collate

Collation utilities, so you can use complex keys as doc IDs.

#### Crypto Pouch

Encrypt a PouchDB/CouchDB database.

#### Pouch Dat

Replicate from PouchDB to Dat.

#### Pouch Datalog

Implement the Datalog query language on PouchDB, with indexes.

#### PouchDB Dump and PouchDB Load

Dump a PouchDB/CouchDB to a file, then load it wholesale. Designed for fast initial replication.

#### Delta Pouch

Implements the handy "every document is a delta" pattern, so you don't have to deal with conflicts.

#### Filter Pouch

Applies filter functions to documents before and after storage, e.g. for encryption, compression, or massaging data.

#### PouchDB GQL

Google Query Language (GQL) queries with PouchDB. (Documentation)

#### PouchDB List

Allows you to re-use your CouchDB list functions on the client side. (Documentation)

#### Pouch Mirror

Creates a synced in-memory mirror of a remote CouchDB for faster reads.

#### PouchDB No-Eval Map/Reduce

Allows you to use the `query()` API in environments that disallow `eval()`, like Chrome packaged apps.

#### Peer Pouch

PouchDB over WebRTC.

#### PouchDB Quick Search

Full-text search engine on top of PouchDB.

#### Relational Pouch

A relational database API on top of PouchDB/CouchDB.

#### PouchDB Rewrite

A PouchDB plugin that allows you to re-use your CouchDB rewrites on the client side. (Documentation)

#### PouchDB Show

A PouchDB plugin that allows you to re-use your CouchDB show functions on the client side. (Documentation)

#### PouchDB Spatial

Multidimensional and spatial queries with PouchDB.

#### Pouch Stream

A plugin to let PouchDB talk streams.

#### PouchDB Update

A PouchDB plugin that allows you to re-use your CouchDB update functions on the client side. (Documentation)

#### PouchDB Validation

A PouchDB plugin that allows you to re-use your CouchDB `validate_doc_update` functions on the client side. (Documentation)

Server Side

#### PouchDB Server

A standalone CouchDB-style REST interface server to PouchDB.

#### Express PouchDB

An express submodule with a CouchDB-style REST interface to PouchDB. Powers PouchDB Server.

Framework adapters

### Angular

#### angular-pouchdb

Wrapper for using PouchDB within Angular.js.

#### Factoryng - AngularJS Adapter

An all-in-one AngularJS factory that wraps PouchDB and Delta Pouch.

#### ngPouch

Angular service to persist remote connection settings and maintain continuous replication.

#### ng-pouchdb

AngularJS binding for PouchDB.

### Backbone

#### Backbone PouchDB

Backbone PouchDB Sync Adapter.

### Ember

#### Ember Pouch

Ember Data adapter for PouchDB/CouchDB.

#### ember-pouchdb

Promisy PouchDB wrapper for Ember.js

Other languages

#### Python-PouchDB

A Python interface to PouchDB, with both a synchronous and an asynchronous API. Uses QtWebKit internally (via either PySide, PyQt4 or PyQt5). Some PouchDB plugins are also wrapped. (Documentation / Launchpad)

#### PouchDroid

Android adapter with a native Java interface to PouchDB.

Tools

#### blob-util

Not strictly PouchDB-related, but a useful set of shims and utility functions for working with Blobs in the browser.

#### Puton

A bookmarklet for inspecting PouchDB databases within the browser. (Github)

#### Revision Tree Visualizer

A tool drawing revision tree of a couchdb document. You can see what is a conflict, which revisions are deleted and which is winning. (Github)