stephencelis/SQLite.swift
面向 Swift 的类型安全 SQLite3 封装,提供查询构建器和强类型数据访问。
- Star
- 10,187
- Fork
- 1,612
- 未关闭 Issue
- 133
- 最近提交
- 13天前
这是什么?
SQLite.swift 在 SQLite3 C 接口之上提供纯 Swift 的封装。开发者不必手写拼接 SQL 字符串,而是通过类型化的表达式构建器编写查询,列类型和可选性由编译器检查。查询支持链式调用且惰性执行,实际运行时才会触发。
除了查询构建器,它也可以作为轻量的原生 SQL 封装使用,支持预编译语句、参数绑定,并能读取 totalChanges、lastInsertRowid 等连接状态。项目还提供表结构查询与迁移辅助、全文搜索、WAL 日志模式配置,并可通过 Swift Package Manager 集成 SQLCipher 加密。
可通过 Swift Package Manager、CocoaPods、Carthage 或 Xcode 子项目安装,也支持在 Linux 上运行(存在一定限制)。
核心功能
- 01类型安全的 SQL 表达式构建器,支持可选类型
- 02可链式调用、惰性执行的查询接口
- 03支持原生 SQL 预编译语句与参数绑定
- 04提供表结构查询与迁移辅助功能
- 05支持全文搜索与 WAL 日志模式配置
- 06可通过 Swift Package Manager 集成 SQLCipher
适用场景
- 在 iOS 或 macOS 应用中用编译期可检查的查询持久化本地数据
- 在 Linux 上开发 Swift 服务端或命令行工具并使用 SQLite 存储数据
- 在 Apple 平台应用中结合 SQLCipher 加密本地数据库
快速上手
- 1
在 Package.swift 中添加 SQLite.swift 依赖
- 2
使用 Swift Package Manager 构建项目
swift build
使用前须知
- 遍历 prepare() 的结果时会强制执行每一步,因此迭代中途出现 SQLite 错误会导致应用崩溃;应改用 prepareRowIterator() 处理这些错误。
- Linux 支持存在一些限制。
收录于专题
标签
常见问题
- SQLite.swift 是什么?
- 面向 Swift 的类型安全 SQLite3 封装,提供查询构建器和强类型数据访问。 SQLite.swift 在 SQLite3 C 接口之上提供纯 Swift 的封装。开发者不必手写拼接 SQL 字符串,而是通过类型化的表达式构建器编写查询,列类型和可选性由编译器检查。查询支持链式调用且惰性执行,实际运行时才会触发。
- SQLite.swift 可以免费使用吗?用的什么许可证?
- SQLite.swift 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- SQLite.swift 还在维护吗?
- 活跃维护中。SQLite.swift 最近一次提交是在 2026年10月25日。
- SQLite.swift 适合用来做什么?
- 在 iOS 或 macOS 应用中用编译期可检查的查询持久化本地数据 在 Linux 上开发 Swift 服务端或命令行工具并使用 SQLite 存储数据 在 Apple 平台应用中结合 SQLCipher 加密本地数据库
- SQLite.swift 怎么安装和运行?
- 在 Package.swift 中添加 SQLite.swift 依赖 使用 Swift Package Manager 构建项目: swift build
- 在哪里获取 SQLite.swift?
- 源代码和安装说明在 GitHub 上:https://github.com/stephencelis/SQLite.swift
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 Rust 的安全、可扩展 ORM 与查询构建器,支持 PostgreSQL、MySQL、SQLite 和 MariaDB。
面向 Node.js 与 TypeScript 的 ORM,提供类型安全的数据库访问,支持 PostgreSQL、MySQL、SQLite、MongoDB 等。
一个类型安全的 TypeScript SQL 查询构建器,支持表、列与结果类型的自动补全。
面向 Node.js 等 JS 平台的 TypeScript/JavaScript ORM,同时支持 Active Record 与 Data Mapper 模式。