Repolode
stephencelis

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. 1

    在 Package.swift 中添加 SQLite.swift 依赖

  2. 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 数据每日更新。

相关项目