by Paul Mietz Egli (firstname.lastname@example.org) 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.
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.
- Titanium SDK 3.1.0 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
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
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:
- 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.
- I've converted the ad-hoc testing code in the
examplefolder 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.
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
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.
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.