Titanium wrapper around Couchbase Mobile
JavaScript Objective-C Java Python C++ Makefile
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Join the chat at https://gitter.im/pegli/ti_touchdb

by Paul Mietz Egli (paul@obscure.com) based on Couchbase Lite iOS by Jens Alfke (http://github.com/couchbase/couchbase-lite-ios) and Couchbase Lite Android by Traun Leyden (http://github.com/couchbase/couchbase-lite-android)

TiTouchDB is an Appcelerator Titanium module which wraps Couchbase Lite, the lightweight, CouchDB-compatible database suitable for embedding into mobile apps.

Quick Start


Download the latest distribution ZIP-file or install using the gitTio CLI:

$ gittio install com.obscure.titouchdb

See the Wiki pages for usage instructions and the samples directory for example apps.

Build Requirements

  • Titanium SDK 5.1.0.GA or later
  • Xcode 4.5 or later (iOS), runtime requirement is iOS 6+
  • Android SDK r21.1, runtime requirement is android-8


Prebuilt modules can be found in the Releases section of this repo.


  • TiTouchDB is under the Apache License 2.0
  • Couchbase Lite is under the Apache License 2.0. See that project for additional licenses.

Development Status - iOS



  • Updated to Couchbase Mobile 1.2.0.
  • Fixed issues that came up as a result of Titanium SDK changes.



Release day for iOS!

CouchbaseLite 1.0.0 has been released. I've updated the module to use the prebuilt frameworks provided by Couchbase and merged the cblite_api_changes branch into master. Please see the wiki for updated installation instructions and the documentation for the new API.



Merged in the beta 3 library from couchbase-lite-ios.

Almost all of the new work is being done in the cblite_api_changes branch. There are two main activities in that branch:

  1. The module API now conforms to the upcoming Couchbase Lite common API specification. This spec is designed to ensure that the Android, iOS, Titanium, and Xamarin versions of the database all provide the same functionality.
  2. I've converted the ad-hoc testing code in the example folder to use ti-mocha. The new unit tests are much easier to write and understand.


Fixed replication progress notifications!

Updated to the latest couchbase-lite-ios code. Jens added a new feature where the database manager could be provided with a GCD queue to use for running background operations, which should decrease the thread-related issues we've been having.


Merged public-api branch to master. Please see the docs for changes to the module APIs.


Lots of changes in the TouchDB-iOS world! Jens has been working on a new, in-process API that replaces the HTTP listener plus CouchCocoa system that was previously the recommended way of using TouchDB. The "public API" branch in the TouchDB repo where this work has been done will be the basis for the 1.5 release of TouchDB. In addition, TouchDB 1.5 will be renamed to Couchbase Lite. The code has already been moved to new Github repo and its internal names have been modified to reflect the branding change. The public-api branch of this project is where I have been working to integrate these API changes. When Couchbase Lite 1.5 goes beta, I will be merging public-api to master.


TouchDB-iOS has a new branch named public-api which removes the need for CouchCocoa and changes all of the calls to in-process rather than deferred/HTTP. I've created a public-api branch in this repo where I will be converting the module to use the updated library calls.


Added support for filters; new tutorial code under samples


Fixed problem with map and reduce functions being garbage collected by the JS context.


Brand-spanking new TouchBooks example built with the "Master/Detail" application template from Titanium Studio. The new code should be much easier to understand, and as a bonus it includes push and pull replication to an IrisCouch server!

Latest build of the project uses the head of TouchDB-iOS to get a JSON view collation bug fix.

Development Status - Android



Android is finally at functional parity with iOS!



Android parity with iOS! Well, almost. The Android version of the module doesn't support internal replication (replicating from one database to another within TiTouchDB), but all of the other test cases are passing and the TouchBooksAlloy sample is working.


Merged public-api branch to master. Android is passing tests 001-005; working on implementing the rest of the unit tests.


Faked the persistent replication classes for API compatibility with iOS by wrapping TDReplicator; will update when TouchDB-Android has persistent replication.


The new TouchBooks example also works on Android. It's cool. Check it out.

Android version uses the latest version to TouchDB-Android. Replication is working in the test case and in TouchBooks, but Marty Schoch, the author of TouchDB-Android, reports that there are issues with the replicator, so proceed with caution.