Couchbase Lite is an embedded lightweight, document-oriented (NoSQL), syncable database engine.
Get more info and downloads of Couchbase Lite (for iOS and Android) via the Couchbase mobile portal
Latency matters a lot to users, so a local database takes frustration out of the equation. It’s got JSON documents, and the same map/reduce as Couchbase Server, in a pint-sized edition.
Couchbase Lite compiles natively for iOS and Android. Half a megabyte optimized, for quick launch and snappy user experience on occasionally connected devices when data matters.
- Embedded: The database engine is a library linked into the app, not a separate server process.
- Small code size: currently under 600kbytes. This is important to mobile apps, which are often downloaded over cell networks.
- Quick startup time on relatively-slow CPUs: currently under 50ms on recent iPhones.
- Low memory usage with typical mobile data-sets. The expectation is the number of documents will not be huge, although there may be sizable multimedia attachments.
- "Good enough" performance with these CPUs and data-sets. (Exact figures depend on your data and application, of course.)
- Like Couchbase Server, it stores records in flexible JSON format instead of requiring predefined schemas or normalization.
- Records/documents can have arbitrary-sized binary attachments, like multimedia content.
- Your application's data format can evolve over time without any need for explicit migrations.
- Map/reduce indexing allows fast lookups without needing to use special query languages.
- Documents can contain free-form text or geographic coordinates, which are efficiently indexed for full-text search or geo-querying.
- Any two copies of a database can be brought into sync via an efficient, reliable, proven REST-based protocol.
- Sync can be on-demand or continuous (with a latency of a few seconds).
- The sync engine supports intermittent and unreliable network connections.
- Conflicts can be detected and resolved, with app logic in full control of merging.
- Revision trees allow for complex replication topologies, including server-to-server (for multiple data centers) and peer-to-peer, without data loss or false conflicts.
- Why Couchbase Lite?
- The Guidebook
- API Reference
- There's lots more information on the wiki.
- Demo apps:
- Or if you want to ask questions or get help, join the mailing list.
- Mac OS X -- 10.7.2 or higher.
- iOS -- 6.0 or higher.
- Android / Java -- The Android version of Couchbase Lite is here.
- It's written in Objective-C.
- Xcode 4.6+ is required to build it (Clang 3.1+, with GNUstep).
- Runtime system requirements for Apple platforms are iOS 6+, or Mac OS X 10.7.2+.
Design, coding: Jens Alfke (email@example.com)
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
Technical advice from: Damien Katz, Filipe Manana, and several other gurus on the CouchDB mailing list
- Couchbase Lite itself is under the Apache License 2.0.
- CocoaHTTPServer, by Robbie Hanson, is under the BSD License.
- FMDB, by Gus Mueller, is under the MIT License.
- Google Toolbox For Mac is under the Apache License 2.0.
- MYUtilities (portions of which are copied into the vendor/MYUtilities directory) is under the BSD License.
- SQLite3-unicodesn by Alexey Illiaronov, is in the public domain, but we wanted to say thanks anyway.
- YAJL, by Lloyd Hilael, is under the ISC license (which appears similar to BSD.)
These are all permissive, commercial-friendly licenses, and you can abide by them simply by putting copyright and permission notices for each in your app's UI / credits / README. For details read the individual licenses.
Downloading Couchbase Lite
Get Couchbase Lite via the Couchbase mobile portal
Building Couchbase Lite
Until we get continuous builds re-enabled, if you want the very latest and greatest (and possibly buggy) version, you'll need to build it yourself...
For full details see the wiki page. The basic steps are:
- Clone the Couchbase Lite repository to your local disk.
- In that directory run "
git submodule update --init --recursive". This will clone the dependent library repos (such as FMDB and MYUtilities) into the
- Open the Xcode project and choose the "CBL Mac" and/or "CBL iOS" schemes (whether it targets a device or simulator shouldn't matter).
- Build or Archive (depending on whether you want a debug or release build.)
- The build product is "CouchbaseLite.framework" which you can now copy wherever you like and add to your application project.