Skip to content
An SQLite plugin for the Swift-Kuery framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Sources Enhance support for nil values (#44) May 1, 2019
Tests Enhance support for nil values (#44) May 1, 2019
docs Update API documentation (#38) Jan 7, 2019
.gitignore Swift 4 compatibility updates (#9) Mar 13, 2018
.jazzy.yaml Remove comment Dec 13, 2016
.swift-version ci: Update to Swift 5.0.2 Aug 6, 2019
.travis.yml ci: Update to Swift 5.0.2 Aug 6, 2019
Package.swift Enhance support for nil values (#44) May 1, 2019
Package@swift-4.swift Enhance support for nil values (#44) May 1, 2019


APIDoc Build Status - Master macOS Linux Apache 2 Slack Status


SQLite plugin for the Swift-Kuery framework. It enables you to use Swift-Kuery to manipulate data in an SQLite database.

SQLite installation

To use Swift-Kuery-SQLite you must install SQLite.


You can install SQLite with Homebrew:

$ brew install sqlite

Or, if you prefer MacPorts, you can use that too, though note that you need to symlink a file into the place that Homebrew installs it:

$ port install sqlite3
$ mkdir -p /usr/local/opt/sqlite/include
$ ln -s /opt/local/include/sqlite3.h /usr/local/opt/sqlite/include/


$ sudo apt-get install sqlite3 libsqlite3-dev


Add dependencies

Add the Swift-Kuery-SQLite package to the dependencies within your application’s Package.swift file. Substitute "x.x.x" with the latest Swift-Kuery-SQLite release.

.package(url: "", from: "x.x.x")

Add SwiftKuerySQLite to your target's dependencies:

.target(name: "example", dependencies: ["SwiftKuerySQLite"]),

Import package

import SwiftKuerySQLite

Using Swift-Kuery-SQLite

First create an instance of Swift-Kuery-SQLite by calling:

let connection = SQLiteConnection(filename: "myDB.db")

You don't have to pass a filename, if you choose not to pass in a filename then your database will be in-memory.

To establish a connection call:

connection.connect() { result in
    guard result.success else {
        // Connection unsuccessful
    // Connection succesful
    // Use connection

If you want to have multiple connections to your database you can create a ConnectionPool as follows:

let pool = SQLiteConnection.createPool(filename: "myDB.db", poolOptions: ConnectionPoolOptions(initialCapacity: 10, maxCapacity: 30))

pool.getConnection() { connection, error in
    guard let connection = connection else {
        // Handle error
    // Use connection

Note, you don't have to pass a filename to the createPool method, if you choose not to pass in a filename then your pool will be shared in-memory.

You now have a connection that can be used to execute SQL queries created using Swift-Kuery. View the Kuery documentation for more information, or see the Database Connectivity with Kuery chapter of the Kitura Until Dawn guidebook/tutorial.

API Documentation

For more information visit our API reference.


We love to talk server-side Swift, and Kitura. Join our Slack to meet the team!


This library is licensed under Apache 2.0. Full license text is available in LICENSE.

You can’t perform that action at this time.