Saturday, October 24, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. Mobile Databases
  3. FMDB

FMDB

What it is

FMDB is an Objective-C wrapper around SQLite for Cocoa developers working in Objective-C or Swift. Its FMDatabase type represents a SQLite database and executes SQL statements. Queries return FMResultSet objects, which provide typed access to columns. For applications that share database access across multiple threads, FMDatabaseQueue coordinates that access and supports transactions, including rollback through a queue method. Queue calls block, and work 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. FMDB also supports custom SQLite functions based on blocks. Installation routes include CocoaPods, Carthage and Swift Package Manager; Swift projects can use Objective-C bridging headers. An SQLCipher subspec or package trait can compile FMDB with SQLCipher encryption support. FMDB is free, with a listed plan at no cost, and is available for iOS and macOS. The project warns against using a single FMDatabase instance from multiple threads at once and recommends FMDatabaseQueue for shared access.

For and against

For

  • Free plan listed as free
  • Available for iOS and macOS
  • Supports transactions and rollback
  • Documents installation through three package managers
  • SQLCipher compilation option is documented

Against

  • One FMDatabase instance should not serve multiple threads at once
  • Queue calls block
  • Queue blocks do not run on another thread
  • Community support is voluntary

The verdict

FMDB provides a direct SQLite wrapper with query, transaction and concurrency tools for Cocoa projects. Developers should follow its guidance on shared access and account for voluntary community support.

Who it suits

FMDB suits Cocoa developers who want SQLite access from Objective-C or Swift projects. It is relevant to projects that need shared database access across threads or transaction support.

Plans and prices

FMDB

Free

Cocoa / Objective-C wrapper around SQLite · install via CocoaPods, Carthage, or Swift Package Manager

Every plan, in full

On the record

Concurrency
FMDatabaseQueue synchronizes and coordinates database access across multiple threads.github.com · read 7 Oct 2026
Custom functions
FMDB supports creating custom SQLite functions based on blocks.github.com · read 7 Oct 2026
Database access
FMDatabase represents a SQLite database and is used to execute SQL statements.github.com · read 7 Oct 2026
Encryption option
The README describes using the SQLCipher subspec or package trait to compile FMDB with SQLCipher encryption support.github.com · read 7 Oct 2026
Integrations
The project documents installation through CocoaPods, Carthage, and Swift Package Manager, and describes SQLCipher options.github.com · read 7 Oct 2026
Intended users
The project is for Cocoa developers who want to work with SQLite through Objective-C or Swift.github.com · read 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.github.com · read 7 Oct 2026
Purpose
FMDB is an Objective-C wrapper around SQLite.github.com · read 7 Oct 2026
Query results
FMResultSet represents the results of executing a query on an FMDatabase and offers typed column accessors.github.com · read 7 Oct 2026
Queue behavior
FMDatabaseQueue calls are blocking and its blocks do not run on another thread.github.com · read 7 Oct 2026
Support
Support is community-provided on a voluntary basis through the mailing list, GitHub bug reports, or Stack Overflow.github.com · read 7 Oct 2026
Swift support
FMDB can be used in Swift projects, including through Swift Package Manager and Objective-C bridging headers.github.com · read 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.github.com · read 7 Oct 2026
Transactions
FMDatabase and FMDatabaseQueue support transactions, including a queue method that can roll back a transaction.github.com · read 7 Oct 2026

Alternatives to FMDB

Every alternative, ranked