NoSQL for mobile apps? [closed]
I don't think there's an established NoSQL backend for native mobile apps, but Couchbase Mobile is a great NoSQL database with implementations for both iOS and Android.
iOS: http://www.couchbase.com/products-and-services/mobile-couchbase
Android: https://github.com/couchbase/couchbase-lite-android
leveldb is the new kid on the block. It's a key'/value store much like BigTable, but designed for embedded devices. Their license is New BSD, which is much better than the LGPL in Tokyo Cabinet.
It's blazingly fast and build right out of Xcode.
I wouldn't be surprised if there's a Tokyo Cabinet port for mobile OSs; but seriously, what would NoSQL bring over the SQLite library already included in every platform?
- simple semantics. it's just as easy to do key/value in SQL as it's on any NoSQL database
- scalability. a multipetabyte-capable phone doesn't qualify as a mobile platform.
- trivial sharding. clusters of phones aren't so popular yet
- small implementation. tokyo cabinet source code is 4.8MB, SQLite is 4.7MB. no real gain (and it's already there).
in short, you can just use SQLite as a 'small NoSQL' if you want. it's quite fast too.
Edit:(Apr 2016)
Realm is the way to go nowadays.
If anyone is still interested, I have found this two wrappers for TokyoCabinet:
- TSDocDB
- BNRPersistence
Anyway, I think LevelDB is better.