YapDatabase is a key/value store built atop sqlite for iOS & Mac. It has the following features:
-
Concurrency. You can read from the database while another thread is simultaneously making modifications to the database. So you never have to worry about blocking the main thread, and you can easily write to the database on a background thread. And, of course, you can read from the database on multiple threads simultaneously.
-
Built-In Caching. A configurable object cache is built-in. Of course sqlite has caching too. But it's caching raw bytes, and we're dealing with objects. So having a built-in cache means you can skip the deserialization process, and get your objects even faster.
-
Metadata. Ever wanted to store extra data along with your object? Like maybe a timestamp of when it was downloaded. Or a fully separate but related object? You're in luck. Metadata support comes standard. Along with its own separate configurable cache too!
-
Collections. Sometimes a single key isn't enough. Sometimes a collection & key is better. No worries. We've got a database for that.
-
Performance. Fetch thousands of objects on the main thread without dropping a frame.
-
Objective-C. A simple to use Objective-C API means you'll be up and running in no time.
Learn more about the features listed above
See what the API looks like in "hello world" for YapDatabase
Deep dive by visiting the wiki