CouchDB-compatible mobile database; Objective-C version
by Jens Alfke ([email protected])
with contributions from Alexander Edge, Chris Kau, David Venable, Derek Clarkson, Fabien Franzen, fcandalija, J Chris Anderson, Marty Schoch, Mike Lamb, Paul Mietz Egli, Robin Lu
and technical advice from Damien Katz and Filipe Manana
TouchDB is the legacy 1.0 version of the project now named Couchbase Lite. Due to the renaming and architectural changes, Couchbase Lite lives in a separate repository (although it inherits from TouchDB.) We don’t recommend using TouchDB for any new development: Couchbase Lite is faster, easier to use, has a better API, has a lot of new features including full-text search and geo-queries, and is actively being developed and supported.
Please proceed to Couchbase Lite. Thanks! --Jens & the Couchbase Mobile team
.
.
.
.
TouchDB is a lightweight Apache CouchDB-compatible database engine suitable for embedding into mobile or desktop apps. Think of it this way: If CouchDB is MySQL, then TouchDB is SQLite.
By “CouchDB-compatible” I mean that it can replicate with CouchDB, and that its data model and high-level design are “Couch-like” enough to make it familiar to CouchDB/Couchbase developers. Its REST API is nearly identical, though it doesn’t support a few CouchDB features, like user accounts, that aren’t useful in mobile apps. Its implementation is not based on CouchDB’s (it’s not even written in Erlang.) It does support replication to and from CouchDB.
By “suitable for embedding into mobile apps”, I mean that it meets the following requirements:
And by “mobile apps” we’re focusing on iOS and Android, although there’s no reason we couldn’t extend this to other platforms like Windows Phone. And it’s not limited to mobile OSs – the Objective-C implementation runs on Mac OS as well, and on Linux and other Unix-like OSs via GNUstep.
TouchDB 1.0.1 was released on January 15, 2013; there have been various bug fixes since then. Use the latest revision on the default ‘master’ branch.
TouchDB has not been actively developed since Spring 2013. It’s not recommended for new projects.
(You might prefer to just download the latest stable release. But if you want to build it yourself…)
For full details see the wiki page. The basic steps are:
git submodule init
” and then “git submodule update
”. This will clone the dependent library repos (such as FMDB and MYUtilities) into the vendor/ subdirectory.Please refer to the files BUILDING.txt and SETUP.txt in the GNUstep
directory.