A class for working with CouchDB documents from Cappuccino/Objective-J

CouchDB Library for Cappuccino

More information, installation instructions, etc. coming soon.

Demo Screenshot

Running the Demo

CouchDB’s built-in webserver can serve static applications which can access the database on the same host/port within browser security limitations.

Run a Cappuccino app under CouchDB by editing your local.ini (or default.ini on CouchDBX). Add to the httpd_global_handlers section:

cappuccino-couchdb = {couch_httpd_misc_handlers, handle_utils_dir_req, "/path/to/cappuccino-couchdb"}

Open index.html in your browser to run the samples.


NOTE: It’s also possible to use the CouchApp command line tool to sync a Cappuccino application to CouchDB, but the size of an application in development would be prohibitive. It’s also inconvenient to sync code to the server every time you make a change in development.

Usage in Your Own Project

Copy the Classes/CouchDB directory and contents to your Cappuccino app.

@import "CouchDB/CouchDB.j"

The class was designed to mimic CouchDB’s jquery.couch.js (couchdb/trunk/share/www/script/jquery.couch.js). So some parts use Javascript features rather than Objective-J features (inline function callbacks, hash options).

More documentation coming soon. In the meantime, see AppController.j.

Known Bugs

  • CouchDB treats a + in a filename as a space on disk, so naming Objective-C categories as CPDictionary+ParamUtils.j will fail. Hopefully this will be fixed in a future release of CouchDB.


  • Better error handling and callbacks
  • Examples of usage with a native Objective-J model.


Geoffrey Grosenbach, PeepCode Screencasts


Top Contributors