EVERYTHING XIAOMI
Get listed

FMDB

FMDB is a free Objective-C wrapper around SQLite for Cocoa development on iOS and macOS.

Place
#19 of 26
Score
6.2
FMDB's website

What FMDB is

FMDB is a free Objective-C wrapper around SQLite for Cocoa development on iOS and macOS. FMDatabase represents a SQLite database and executes SQL statements, while FMResultSet exposes typed accessors for query results. FMDatabaseQueue coordinates database access across multiple threads and supports transactions, including rollback methods. Queue calls are blocking, and code inside their blocks does not run on another thread. The project recommends SQLite placeholders with bound values rather than inserting values directly into SQL strings. Developers can create custom SQLite functions from blocks. FMDB works in Objective-C and Swift projects. Installation is documented through CocoaPods, Carthage, and Swift Package Manager, with Objective-C bridging headers available for Swift. An SQLCipher subspec or package trait can compile FMDB with SQLCipher encryption support. The listed FMDB plan costs nothing. It supports offline use but provides no data synchronization. Community support is voluntary through the mailing list, GitHub bug reports, or Stack Overflow. One FMDatabase instance should not be used concurrently from multiple threads; FMDatabaseQueue is recommended for shared access.

Good

  • Free SQLite wrapper for iOS and macOS
  • Typed query access through FMResultSet
  • Queue coordinates multi-threaded database access
  • Supports CocoaPods, Carthage, and Swift Package Manager
  • SQLCipher compilation option documented

Watch out

  • One FMDatabase instance should not serve multiple threads
  • Queue calls block during execution
  • No data synchronization
  • Community support is voluntary

Who it suits

FMDB suits Cocoa developers who need SQLite access from Objective-C or Swift applications. It is relevant for offline databases where developers can manage threading and transaction behavior directly.

Verdict

FMDB provides a focused SQLite layer with Swift compatibility, queue coordination, and optional SQLCipher support. Developers should design around blocking queue calls and the documented threading restriction.

Plans and prices

From FMDB's own pricing page, checked 7 Oct 2026.

All about pricing
PlanPriceWhat it gives you
FMDBFreeCocoa / Objective-C wrapper around SQLite · install via CocoaPods, Carthage, or Swift Package Manager

The facts

Each one read from FMDB's own pages, with the date it was checked.

What it does

Concurrency
FMDatabaseQueue synchronizes and coordinates database access across multiple threads.checked 7 Oct 2026
Custom functions
FMDB supports creating custom SQLite functions based on blocks.checked 7 Oct 2026
Database access
FMDatabase represents a SQLite database and is used to execute SQL statements.checked 7 Oct 2026
Encryption option
The README describes using the SQLCipher subspec or package trait to compile FMDB with SQLCipher encryption support.checked 7 Oct 2026
Integrations
The project documents installation through CocoaPods, Carthage, and Swift Package Manager, and describes SQLCipher options.checked 7 Oct 2026
Intended users
The project is for Cocoa developers who want to work with SQLite through Objective-C or Swift.checked 7 Oct 2026
Parameter binding
The README recommends SQLite placeholders and bound values, which its execution methods escape, instead of manually inserting values into SQL strings.checked 7 Oct 2026
Purpose
FMDB is an Objective-C wrapper around SQLite.checked 7 Oct 2026
Query results
FMResultSet represents the results of executing a query on an FMDatabase and offers typed column accessors.checked 7 Oct 2026
Queue behavior
FMDatabaseQueue calls are blocking and its blocks do not run on another thread.checked 7 Oct 2026
Support
Support is community-provided on a voluntary basis through the mailing list, GitHub bug reports, or Stack Overflow.checked 7 Oct 2026
Swift support
FMDB can be used in Swift projects, including through Swift Package Manager and Objective-C bridging headers.checked 7 Oct 2026
Thread-safety limit
The README warns against using one FMDatabase instance from multiple threads at once and recommends FMDatabaseQueue for shared access.checked 7 Oct 2026
Transactions
FMDatabase and FMDatabaseQueue support transactions, including a queue method that can roll back a transaction.checked 7 Oct 2026

Alternatives to FMDB

All alternatives
  1. 1

    Hive

    Free planOpen sourceAndroidiOSWebAPI
    8.6From $5 a month
  2. 2Firestore logo

    Firestore

    Free planAndroidiOSWebAPI
    8.1$0.03 usage-based
  3. 3

    SQLDelight

    Free planOpen sourceAndroidiOSWebAPI
    7.9Free plan
  4. 4

    PouchDB

    Free planOpen sourceAndroidiOSWebAPI
    7.8Free plan
  5. 5Sparksee logo

    Sparksee

    Free planAndroidiOSAPILinux
    7.6Free plan
  6. 6RxDB logo

    RxDB

    Free planAndroidiOSWebAPI
    7.5From $99 a month