Swiftpack.co - Package - Kitura/Swift-Kuery-SQLite


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: "https://github.com/IBM-Swift/Swift-Kuery-SQLite.git", 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.


Stars: 13

Used By

Total: 0


2.0.1 -

Support Swift 5

2.0.0 -

Swift-Kuery-SQLite 2.0.0 includes the following updates:

  • Conformance to Swift-Kuery 3.0 protocols
  • Asynchronous API behavior
  • Replaced Int32 support with Int64 support (C API limitation)
  • Bug fixes (See commit history)

The release contains breaking API and behavior changes.

For further details please see the Swift-Kuery MigrationGuide

1.1.0 -

  • Handle Mixed Casing
  • Support Auto Increment
  • Update Swift-Kuery to 2.0.0

1.0.0 -

  • Convert to Swift 4 package
  • Support Swift 4.1