Repolode
groue

groue/GRDB.swift

面向应用开发的 Swift SQLite 工具库,提供数据持久化、查询接口、迁移和数据库变更监听。

Star
8,726
Fork
1,106
未关闭 Issue
13
最近提交
前天

这是什么?

GRDB.swift 是一个用于将应用数据保存到 SQLite 数据库的 Swift 库。它可以让结构体和类通过内置的获取与持久化方法直接读写数据库,在常见操作中无需手写 SQL 或处理原始行数据,同时也支持直接编写原生 SQL。

库中提供 Swift 查询接口用于构建请求,支持数据库迁移以便随版本迭代演进表结构,并内置全文搜索。数据库观察功能会在数据变化时发出通知,并可与 Swift Concurrency、Combine 及 RxSwift 直接结合使用。数据库连接分为 DatabaseQueue 和 DatabasePool,后者开启 WAL 模式,允许并发读写。

GRDB 支持 iOS、macOS、tvOS 和 watchOS,可通过 Swift Package Manager、CocoaPods 或手动方式集成。配套库提供 SwiftUI 集成和数据库快照测试。

核心功能

  • 01通过内置方法将 Swift 结构体和类映射到数据表并完成读写。
  • 02提供 Swift 查询接口构建 SQL,同时支持带安全参数绑定的原生 SQL。
  • 03支持数据库迁移,随应用版本迭代更新表结构。
  • 04数据变化时发出通知,可与 Combine、RxSwift 及异步序列配合使用。
  • 05提供 DatabaseQueue 与 DatabasePool 两种连接,后者基于 WAL 模式支持并发读写。
  • 06支持全文搜索,并可通过 SQLCipher 加密数据库。

适用场景

  • 为 iOS 或 macOS 应用持久化用户数据和模型。
  • 监听数据库变化,使 SwiftUI 或 UIKit 界面保持最新。
  • 通过迁移机制管理多个应用版本间的表结构变更。
  • 开发离线优先、将数据存于本地 SQLite 的应用。

快速上手

  1. 1

    使用 Swift Package Manager 通过仓库地址将 GRDB 添加到项目中

  2. 2

    导入 GRDB 并打开数据库连接

使用前须知

  • 主要面向 Apple 平台(iOS、macOS、tvOS、watchOS),需要 Swift 6.1 或更高版本。
  • 不支持 Carthage;CocoaPods 无法发布新版本,因此较新版本需要使用 git 分支或标签的变通方法。

收录于专题

标签

#sqlite#swift#orm#database-observation#sql-builder#ios#macos#database#grdb#spm

常见问题

GRDB.swift 是什么?
面向应用开发的 Swift SQLite 工具库,提供数据持久化、查询接口、迁移和数据库变更监听。 GRDB.swift 是一个用于将应用数据保存到 SQLite 数据库的 Swift 库。它可以让结构体和类通过内置的获取与持久化方法直接读写数据库,在常见操作中无需手写 SQL 或处理原始行数据,同时也支持直接编写原生 SQL。
GRDB.swift 可以免费使用吗?用的什么许可证?
GRDB.swift 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
GRDB.swift 还在维护吗?
活跃维护中。GRDB.swift 最近一次提交是在 2026年11月5日。
GRDB.swift 适合用来做什么?
为 iOS 或 macOS 应用持久化用户数据和模型。 监听数据库变化,使 SwiftUI 或 UIKit 界面保持最新。 通过迁移机制管理多个应用版本间的表结构变更。 开发离线优先、将数据存于本地 SQLite 的应用。
GRDB.swift 怎么安装和运行?
使用 Swift Package Manager 通过仓库地址将 GRDB 添加到项目中 导入 GRDB 并打开数据库连接
在哪里获取 GRDB.swift?
源代码和安装说明在 GitHub 上:https://github.com/groue/GRDB.swift

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目