Technical Comparison
BoutiqueDB vs GRDB
BoutiqueDB vs GRDB
GRDB is an exceptional, mature SQLite toolkit for Swift.Key Differences:
- Engine Architecture: GRDB compiles against system
libsqlite3.dylibor custom SQLCipher builds. BoutiqueDB runs on the Rust Turso engine (sdk-kit). - CDC Observation: GRDB relies on SQLite
update_hooktransaction monitoring. BoutiqueDB uses native Change Data Capture (turso_cdc), allowing CDC observation across multi-process WAL setups and background sync tasks. - Turso Features: BoutiqueDB natively supports Tantivy BM25 FTS, vector search (
Vector32), and IVM materialized views without extra C compilation steps.
BoutiqueDB vs SwiftData & CoreData
BoutiqueDB vs SwiftData & CoreData
SwiftData and CoreData are Apple’s official object-graph persistence frameworks.Key Differences:
- Object Graph vs Value Types: CoreData/SwiftData manage complex object graphs with faulting and managed object contexts. BoutiqueDB operates purely on immutable Swift structs (
Sendable). - Concurrency Model: CoreData requires
performBackgroundTaskorModelActor. BoutiqueDB uses Swift@MainActorfor UI components and backgroundDatabaseActorexecution. - CloudKit Control: SwiftData handles CloudKit sync automatically but offers limited debugging control when conflicts arise. BoutiqueDB exposes
CKSyncEnginestatus, record mapping, and conflict hooks directly.
BoutiqueDB vs Raw SQLite3
BoutiqueDB vs Raw SQLite3
Raw
sqlite3 C API offers total control but requires manual memory management, raw SQL string queries, and custom binding handlers.Key Differences:- Ergonomics: BoutiqueDB uses
StructuredQueriesmacro models (@Table) to generate type-safe SQL queries at compile time. - Safety: Raw SQLite C functions easily introduce thread-safety violations and SQL injection risks if not sanitized. BoutiqueDB provides type-safe parameter binding.

