🍦 SwiftServe Get

Menu / packages / grdb.swift

grdb.swiftas of v7.11.1 · b83108d1

https://github.com/groue/grdb.swift

What it serves, where

CapabilityiOSmacOSwatchOStvOSvisionOSLinuxCatalyst
Codable persistence

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

Concurrent access

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.80 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

Database encryption
?

not verified yet · confidence 0.50 · as of v7.11.1

?

not verified yet · confidence 0.50 · as of v7.11.1

?

not verified yet · confidence 0.50 · as of v7.11.1

?

not verified yet · confidence 0.50 · as of v7.11.1

?

not verified yet · confidence 0.50 · as of v7.11.1

?

not verified yet · confidence 0.50 · as of v7.11.1

?

not verified yet · confidence 0.50 · as of v7.11.1

Full-text search

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.80 · as of v7.11.1

serves it · confidence 0.75 · as of v7.11.1

serves it · confidence 0.80 · as of v7.11.1

In-memory database
?

not verified yet · confidence 0.30 · as of v7.11.1

?

not verified yet · confidence 0.30 · as of v7.11.1

?

not verified yet · confidence 0.30 · as of v7.11.1

?

not verified yet · confidence 0.30 · as of v7.11.1

?

not verified yet · confidence 0.30 · as of v7.11.1

?

not verified yet · confidence 0.30 · as of v7.11.1

?

not verified yet · confidence 0.30 · as of v7.11.1

Schema migrations

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

Reactive queries / change tracking

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.80 · as of v7.11.1

serves it · confidence 0.80 · as of v7.11.1

serves it · confidence 0.80 · as of v7.11.1

Type-safe queries

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

SQLite access

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.90 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

serves it · confidence 0.85 · as of v7.11.1

✓ serves it · ◐ with conditions · ✕ not served (proven) · ? not verified yet — hover any verdict for the receipt, click to pin it

Notes

Codable persistence: Codable bridging is first-class: FetchableRecordDecoder (the Decodable row decoder) plus the FetchableRecord / PersistableRecord / EncodableRecord protocols are unconditional on all platforms. Codable structs conforming to these protocols get persistence and fetching for free (as shown in the README quick start).

Concurrent access: WAL-based DatabasePool (anchored via DatabasePool.path; the class decl itself fell outside the truncated digest), DatabaseSnapshot and reader/writer protocols are unconditional on all platforms. DatabasePool.makeSnapshotPool is gated behind SQLITE_ENABLE_SNAPSHOT && !SQLITE_DISABLE_SNAPSHOT, and Package.swift defines SQLITE_DISABLE_SNAPSHOT on .linux (Package.swift:19), so snapshot pools are unavailable on Linux — a peripheral feature; core concurrent access remains, with Linux confidence reduced accordingly.

Database encryption: SQLCipher API (usePassphrase, changePassphrase, SQLCipher log configuration) exists in the surface but every declaration is gated behind SQLITE_HAS_CODEC, which the standard SwiftPM build never defines; encryption requires a SQLCipher-enabled distribution (e.g. the GRDB.swift/SQLCipher CocoaPods flavor or a custom build). No platform has an unconditionally present encryption symbol, so status is unknown on all platforms with all-conditional evidence (confidence capped at 0.6).

Full-text search: FTS3/FTS4 virtual table modules and pattern API are unconditional on every platform. FTS5 (FTS5 struct, FTS5Pattern, tokenizers) is entirely gated behind SQLITE_ENABLE_FTS5 and is only available with custom SQLite / SQLCipher builds; supported status here rests on FTS3/FTS4. Linux confidence lower because runtime FTS availability depends on the linked system SQLite build.

In-memory database: GRDB documents in-memory databases (DatabaseQueue(named:) / DatabaseQueue() in the checkout at GRDB/Core/DatabaseQueue.swift), but no DatabaseQueue declaration made it into the truncated surface digest (800/2706 decls), so no symbol anchor is available. README-only evidence: status unknown, confidence capped at 0.3.

Schema migrations: DatabaseMigrator is unconditional on all platforms. Only the Combine convenience DatabaseMigrator.migratePublisher (DatabaseMigrator.swift:678, canImport(Combine)) is absent on Linux; that is a peripheral convenience and does not affect the core migration capability.

Reactive queries / change tracking: ValueObservation machinery (shared/async observation, schedulers) and transaction observation types are unconditional on all platforms. Combine publishers (ValueObservation.publisher, DatabaseRegionObservation.publisher, canImport(Combine)) are absent on Linux, but async-sequence and callback observation remain. The ValueObservation base type itself is not in the truncated digest (800/2706 decls); anchors are its sibling observation types, hence confidence slightly reduced.

Type-safe queries: Query interface DSL (QueryInterfaceRequest, Column, TableRecord) and type-safe SQLRequest are unconditional on all platforms in the surface. A few peripheral request methods (e.g. QueryInterfaceRequest.deleteAndFetchStatement) are gated behind GRDBCUSTOMSQLITE || SQLITE_HAS_CODEC; the core builder is not.

SQLite access: Core SQLite access API (Database, execute, reader/writer protocols) is unconditional across the surface. Package.swift declares iOS 13 / macOS 10.15 / tvOS 13 / watchOS 7 floors and explicitly configures the .linux platform (SQLITE_DISABLE_SNAPSHOT define, Package.swift:19), so Linux is a maintained platform. Digest truncated (800/2706 decls) and 9 ObjC files unparsed; confidence held below cap accordingly.

Badges for your README

Maintainer of grdb.swift? These are yours — verified claims, linked to the receipts. Wrong verdict? That's a fix we want; see contribute.

verified badge
capability matrix badge
Codable persistence badge
Concurrent access badge
Database encryption badge
Full-text search badge
In-memory database badge
Schema migrations badge
Reactive queries / change tracking badge
Type-safe queries badge
SQLite access badge