Swiftpack.co -  Kitura/Swift-Kuery-SQLite as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
An SQLite plugin for the Swift-Kuery framework
.package(url: "https://github.com/Kitura/Swift-Kuery-SQLite.git", from: "IBM-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: "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: 12
Last commit: 5 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

2 years ago

Support Swift 5

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics