11. Experimental Features — Apache CouchDB 1.7 Documentation

# 11. Experimental Features

This is a list of experimental features in CouchDB. They are included in a release because the development team is requesting feedback from the larger developer community. As such, please play around with these features and send us feedback, thanks!

Use at your own risk! Do not rely on these features for critical applications.

## 11.1. NodeJS Query Server

The NodeJS Query Server is an alternative runtime environment for the default JavaScript Query Server that runs on top of Node.JS and not SpiderMonkey like the default Query Server.

### 11.1.1. Setup

You will need to install Node.JS version 0.10.0 or later. See Node.JS Downloads for options.

1. Install the couchjs-node binary. Either from the CouchDB sources:

       cd src/couchjs-node
       npm link

Or via NPM:

    npm install -g couchjs

Note

NPM in non-standard locations

If your Node.JS installation doesn’t store binaries in /usr/local/bin you will need to adjust CouchDB’s configuration. Add this to your local.ini file:

    [query_servers]
    nodejs = /path/to/couchjs-node /path/to/couchdb/share/server/main.js

And then restart your CouchDB instance.

2. Done. Now you can create design documents with the language parameter set to nodejs and all JavaScript functions in this design document will be processed by the Node.JS query server.

Enjoy!

### 11.1.2. Differences from the SpiderMonkey Query Server

V8 and SpiderMonkey roughly behave similar, but there might be engine- specific differences that make or break a JavaScript function in one or the other server.

## 11.2. Plugins

See src/couch_plugins/README.md.