面向 Swift 的类型安全 SQLite3 封装,提供查询构建器和强类型数据访问。
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
使用 Swift Package Manager 通过仓库地址将 GRDB 添加到项目中
- 2
导入 GRDB 并打开数据库连接
使用前须知
- 主要面向 Apple 平台(iOS、macOS、tvOS、watchOS),需要 Swift 6.1 或更高版本。
- 不支持 Carthage;CocoaPods 无法发布新版本,因此较新版本需要使用 git 分支或标签的变通方法。
收录于专题
标签
常见问题
- 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 数据每日更新。
相关项目
面向 Node.js 等 JS 平台的 TypeScript/JavaScript ORM,同时支持 Active Record 与 Data Mapper 模式。
面向 Rust 的安全、可扩展 ORM 与查询构建器,支持 PostgreSQL、MySQL、SQLite 和 MariaDB。
一个 Swift 包,用于在 Apple 平台和 Linux 上调用 OpenAI 公开 API,并支持多种兼容 OpenAI 的服务商。
免费开源的原生数据库客户端,支持 macOS 和 iOS,覆盖主流 SQL 与 NoSQL 数据库。