Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 94 lines (66 sloc) 5.142 kB
9ae9ecf @snej The Great Renaming
snej authored
1 # TouchDB #
599857c @snej First ToyCouch commit. CRUD basically working.
snej authored
2
8bfb5eb @snej Updated the README.
snej authored
3 by Jens Alfke (jens@couchbase.com)
d9171c9 @snej Updated the README
snej authored
4 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
23ba222 @snej Updated README, and added some Apache license comments
snej authored
5 and technical advice from Damien Katz and Filipe Manana
599857c @snej First ToyCouch commit. CRUD basically working.
snej authored
6
d3842b9 @snej Updated README.
snej authored
7 **TouchDB** is a lightweight [Apache CouchDB][1]-compatible database engine suitable for embedding into mobile or desktop apps. Think of it this way: If CouchDB is MySQL, then TouchDB is SQLite.
599857c @snej First ToyCouch commit. CRUD basically working.
snej authored
8
91da97d @snej Updated the README to reflect beta status.
snej authored
9 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.
b976483 @snej Cleanup
snej authored
10
11 By "_suitable for embedding into mobile apps_", I mean that it meets the following requirements:
12
d3842b9 @snej Updated README.
snej authored
13 * Small code size; currently about 250kbytes. (Code size is important to mobile apps, which are often downloaded over cell networks.)
b976483 @snej Cleanup
snej authored
14 * Quick startup time on relatively-slow CPUs; ideally 100ms or less.
15 * 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.
16 * "Good enough" performance with these CPUs and data-sets.
17
0900c72 @snej Updated README to add info about GNUstep. Reorganized GNUstep-specifi…
snej authored
18 And by "_mobile apps_" I'm focusing on iOS and [Android][11], 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][12].
b976483 @snej Cleanup
snej authored
19
7d3d80b @snej Added some useful newbie links to the README.
snej authored
20 ## More Information
21
22 * There's lots more information on the [wiki][2].
23 * There's a "Grocery Sync" [demo app][18] for iOS, that implements a simple shared to-do list.
24 * Or if you want to ask questions or get help, join the [mailing list][17].
b976483 @snej Cleanup
snej authored
25
0900c72 @snej Updated README to add info about GNUstep. Reorganized GNUstep-specifi…
snej authored
26 ## Platforms ##
27
28 * **Mac OS X** -- 10.7.2 or higher.
29 * **iOS** -- 5.0 or higher.
30 * **Linux, BSD, etc** -- Any platform [supported by][13] current [GNUstep][12] and libobjc2.
31 * **MS Windows** -- As [supported by][13] GNUstep using MingW.
32 * **Android / Java** -- Has its own source base and [repository][11].
33
b976483 @snej Cleanup
snej authored
34 ## Requirements ##
35
36 * It's written in Objective-C.
d9171c9 @snej Updated the README
snej authored
37 * Xcode 4.4+ is required to build it (Clang 3.1+, with GNUstep).
0900c72 @snej Updated README to add info about GNUstep. Reorganized GNUstep-specifi…
snej authored
38 * Runtime system requirements for Apple platforms are iOS 5+, or Mac OS X 10.7.2+.
8bfb5eb @snej Updated the README.
snej authored
39
b976483 @snej Cleanup
snej authored
40 ## License ##
41
8bfb5eb @snej Updated the README.
snej authored
42 * TouchDB itself is under the Apache License 2.0.
b5f897d @snej Updated README
snej authored
43 * [FMDB][5], by [Gus Mueller][8], is under the MIT License.
8bfb5eb @snej Updated the README.
snej authored
44 * [Google Toolbox For Mac][10] is under the Apache License 2.0.
2bc94da @snej Project cleanup, and bumped version to 0.3
snej authored
45 * [CocoaHTTPServer][9], by Robbie Hanson, is under the BSD License.
b976483 @snej Cleanup
snej authored
46 * [MYUtilities][6] (portions of which are copied into the vendor/MYUtilities directory) is under the BSD License. (But note that I, Jens, wrote MYUtilities and would have no problem re-licensing it under Apache for use here.)
47
b5f897d @snej Updated README
snej authored
48 ## Development Status ##
49
7d3d80b @snej Added some useful newbie links to the README.
snej authored
50 TouchDB went beta in June 2012. The current stable release is beta 3, [version 0.92][16].
0900c72 @snej Updated README to add info about GNUstep. Reorganized GNUstep-specifi…
snej authored
51
91da97d @snej Updated the README to reflect beta status.
snej authored
52 We don't have a formal schedule for 1.0, but expect the blessed event by the end of summer.
b5f897d @snej Updated README
snej authored
53
d9171c9 @snej Updated the README
snej authored
54 ## Downloading TouchDB ##
55
56 * [Stable builds][16] (releases, betas and candidates)
57 * [Latest revisions][19] (built hourly after any commits. May not be stable; use at your own risk.)
58
b976483 @snej Cleanup
snej authored
59 ## Building TouchDB ##
60
0900c72 @snej Updated README to add info about GNUstep. Reorganized GNUstep-specifi…
snej authored
61 ### On a Mac ###
62
7d3d80b @snej Added some useful newbie links to the README.
snej authored
63 (You might prefer to just [download][16] the latest stable release. But if you want to build it yourself...)
64
91da97d @snej Updated the README to reflect beta status.
snej authored
65 For full details see the [wiki page][7]. The basic steps are:
b5f897d @snej Updated README
snej authored
66
ac55f89 @snej Oops, fixed formatting glitch in README.
snej authored
67 1. Clone the TouchDB repository to your local disk.
91da97d @snej Updated the README to reflect beta status.
snej authored
68 2. In that directory run "`git submodule init`" and then "`git submodule update`". This will clone the dependent library repos (such as [FMDB][5] and [MYUtilities][6]) into the vendor/ subdirectory.
ac55f89 @snej Oops, fixed formatting glitch in README.
snej authored
69 3. Open the Xcode project and build the "Mac Framework" and/or "iOS Framework" schemes.
b976483 @snej Cleanup
snej authored
70
0900c72 @snej Updated README to add info about GNUstep. Reorganized GNUstep-specifi…
snej authored
71 ### With GNUstep ###
72
73 Please refer to the files [BUILDING.txt][14] and [SETUP.txt][15] in the `GNUstep` directory.
b976483 @snej Cleanup
snej authored
74
75 [1]: http://couchdb.apache.org
76 [2]: https://github.com/couchbaselabs/TouchDB-iOS/wiki
77 [3]: http://couchbase.com
78 [4]: https://github.com/couchbaselabs/CouchCocoa
1d6fd89 @snej Fixed link to FMDB repo in README.
snej authored
79 [5]: https://github.com/couchbaselabs/fmdb
b976483 @snej Cleanup
snej authored
80 [6]: https://bitbucket.org/snej/myutilities/overview
b5f897d @snej Updated README
snej authored
81 [7]: https://github.com/couchbaselabs/TouchDB-iOS/wiki/Building-TouchDB
82 [8]: https://github.com/ccgus/
2bc94da @snej Project cleanup, and bumped version to 0.3
snej authored
83 [9]: https://github.com/robbiehanson/CocoaHTTPServer
8bfb5eb @snej Updated the README.
snej authored
84 [10]: http://code.google.com/p/google-toolbox-for-mac/
8e6cf50 @snej Oops, fixed a wrong URL in the README update.
snej authored
85 [11]: https://github.com/couchbaselabs/TouchDB-Android
0900c72 @snej Updated README to add info about GNUstep. Reorganized GNUstep-specifi…
snej authored
86 [12]: http://www.gnustep.org/
87 [13]: http://wiki.gnustep.org/index.php/Platform_compatibility
88 [14]: https://github.com/couchbaselabs/TouchDB-iOS/blob/master/GNUstep/BUILDING.txt
89 [15]: https://github.com/couchbaselabs/TouchDB-iOS/blob/master/GNUstep/SETUP.txt
7d3d80b @snej Added some useful newbie links to the README.
snej authored
90 [16]: https://github.com/couchbaselabs/TouchDB-iOS/downloads
91 [17]: https://groups.google.com/forum/?fromgroups#!forum/mobile-couchbase
f22447c @snej Oops, fixed a bad link in the README.
snej authored
92 [18]: https://github.com/couchbaselabs/iOS-Couchbase-Demo
d9171c9 @snej Updated the README
snej authored
93 [19]: http://files.couchbase.com/developer-previews/mobile/ios/touchdb/
Something went wrong with that request. Please try again.