Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


YapDatabase layer

Subscribe to updates I use YapDatabase

Statistics on YapDatabase

Number of watchers on Github 0
Number of open issues 0
Main language Objective-C
Average time to merge a PR less than a minute
Open pull requests 0+
Closed pull requests 0+
Last commit almost 3 years ago
Repo Created almost 6 years ago
Repo Last Updated over 5 years ago
Size 10.1 MB
Organization / Authorbadoo
Page Updated
Do you use YapDatabase? Leave a review!
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating YapDatabase for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


Build Status Pod Version Carthage compatible

YapDatabase is a **key/value store and MUCH MORE** 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 serialized bytes, and we're dealing with objects. So having a built-in cache means you can skip the deserialization process, and get your objects much faster.

  • Collections. Sometimes a single key isn't enough. Sometimes a collection & key is better. No worries. YapDatabase supports collections out of the box.

  • 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!

  • Views. Need to filter, group & sort your data? No problem. YapDatabase comes with Views. And you don't even need to write esoteric SQL queries. Views work using blocks with your own code. Plus they automatically update themselves, and they make animating tables super easy.

  • Secondary Indexing. Speed up your queries by indexing important properties. And then use SQL style queries to quickly find your items.

  • Full Text Search. Built atop sqlite's FTS module (contributed by google), you can add extremely speedy searching to your app with minimal effort.

  • Relationships. You can setup relationships between objects and even configure cascading delete rules.

  • Sync. Support for syncing with Apple's CloudKit is available out of the box. There's even a fully functioning example project that demonstrates writing a syncing Todo app.

  • Extensions. More than just a key/value store, YapDatabase comes with an extensions architecture built-in. You can even create your own extensions.

  • 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.

See what the API looks like in hello world for YapDatabase
Learn more by visiting the wiki

YapDatabase questions on Stackoverflow (View All Questions)
  • YapDatabase sorting confounds editing update
  • YapDatabase SQLite error code:6922, 'disk I/O error'
  • YapDatabase iOS C++/C Driver
  • How to update database record using YapDatabase
  • How to save multiple entries in table using YapDatabase for swift
  • YapDatabase memory consumption on fts index update
  • YAPdatabase connexion is null
  • Multiple index-entries for a single Yapdatabase-row
  • How to mapping array in YAPdatabase object?
  • YapDataBase Warnings: Umbrella header for module 'YapDatabase' does not include header
  • Does YapDatabase have an equivalent to NSFetchedResultsController indexPathForObject:?
  • How to get YapDatabase and Mantle to play nicely with serialization
YapDatabase list of languages used
Other projects in Objective-C