OSS探訪GitHubでログイン

SQLiteをSwift record・query interface・observation・migrationで扱うapplication向けtoolkit

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,676
主要言語
Swift
ライセンス
MIT
リポジトリ最終更新
2026/09/29
ページ内ナビ

概要

GRDBはSQLite databaseをSwift applicationから扱うtoolkitです。DatabaseQueue/DatabasePool、SQL実行、Codable record、query interface、database observation、schema migrationを提供し、raw SQLと高level APIを用途に応じて併用できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

DatabaseQueue/PoolからSQL・record・query interfaceを使い分ける

DatabaseQueueまたはDatabasePoolでconnectionを開き、raw SQL、Row/value fetch、FetchableRecord/PersistableRecord、Swift query interfaceを同じdatabase layerで利用できます。

出典:[2]

observationとmigrationでapp databaseの変更・schema進化を管理する

ValueObservationでdatabase変更を監視し、Swift concurrencyやCombineなどへ接続できます。migration機能でapplication versionに合わせたschema変更も管理できます。

出典:[2]

向いている用途

Core Data以外の選択肢としてSQLiteを直接活用したいiOS appに向く

SQLの柔軟性を残しつつSwift model、concurrency、observationを組み合わせたいlocal-first applicationやoffline cacheに適します。

出典:[2]

導入前の確認

7.11.1はSwift tools 6.1・iOS 13以上で、CocoaPodsの新version公開には制約がある

Package.swiftはSwift 6 mode、iOS 13、macOS 10.15、tvOS 13、watchOS 7以上を宣言します。READMEではCocoaPodsへ新しいGRDB versionを公開できない既知問題があり、later versionではSPM利用が素直です。

出典:[3][2][4]

参考にした公式資料

  1. [1]groue/GRDB.swift — GitHub repository(2026-10-06)
  2. [2]GRDB 7.11.1 — README(2026-10-06)
  3. [3]GRDB 7.11.1 — Package.swift(2026-10-06)
  4. [4]GRDB 7.11.1 release(2026-10-06)
  5. [5]GRDB MIT license(2026-10-06)
編集部からの補足

SQLの柔軟性を保ちながらSwift model・observation・migrationを使いたいlocal-first iOS appに向きます。current releaseはSPM導入が素直です。

3ステップで試す

  1. 1

    GRDB 7.11.1をSwiftPMへ追加する

    確認済みreleaseを固定します。iOS 13以上・Swift tools 6.1が前提です。

    .package(url: "https://github.com/groue/GRDB.swift.git", exact: "7.11.1")
  2. 2

    SQLite database connectionを開く

    READMEの基本例に沿ってDatabaseQueueからSQLite databaseを開きます。

    import GRDB let dbQueue = try DatabaseQueue(path: "/path/to/database.sqlite")
  3. 3

    tableを作りrecordをinsertする

    write transaction内でschema作成とparameterized SQLによるinsertを確認します。

    try dbQueue.write { db in try db.create(table: "player") { t in t.primaryKey("id", .text) t.column("name", .text).notNull() } try db.execute(sql: "INSERT INTO player (id, name) VALUES (?, ?)", arguments: ["1", "Arthur"]) }
公式READMEで確認

成長

成長の推移 · 直近30日

8,676 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
7

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • sqlite
  • database
  • sql
  • sql-builder
  • grdb
  • spm
  • sqlite-databases
  • database-observation
Stars
8,676
Forks
1,057
Watchers
82
Open Issues
5
Contributors
105
所有者種別
User
主要言語
Swift
ライセンス
MIT
リポジトリ最終更新
2026/09/29

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?
GRDBとは?Swift向けSQLite database toolkit | OSS探訪