This is currently in technical preview. Join us in Discord to report any issues.
In this Swift quickstart we will learn how to:
  • Retrieve database credentials
  • Install the libSQL package
  • Connect to a local or remote Turso database
  • Execute a query using SQL
  • Sync changes to local database (optional)
1

Retrieve database credentials

You will need an existing database to continue. If you don’t have one, create one.Get the database URL:
turso db show --url <database-name>
Get the database authentication token:
turso db tokens create <database-name>
Assign credentials to the environment variables inside .env.
TURSO_DATABASE_URL=
TURSO_AUTH_TOKEN=
You will want to make sure to handle database tokens securely.
2

Install

First begin by adding libsql as a package dependency in XCode using this repo:

libSQL Swift

Build from source code
Or add it to your SwiftPM dependencies:
import PackageDescription

let package = Package(
    // ...
    dependencies: [
        .package(url: "https://github.com/tursodatabase/libsql-swift", from: "0.1.1"),
    ],
    // ...
)
3

Connect

You must first create a Database object and then open a Connection to it:
4

Execute

You can execute a SQL query against your existing database by calling query(), or execute() when you expect the query to not yield any rows:
let rows = try conn.query("SELECT * FROM users")
If you need to use placeholders for values, you can do that:
try conn.query("SELECT * FROM users WHERE id = ?", 1)
5

Sync (Embedded Replicas only)

When using embedded replicas you should call sync() on the database type to sync your local database with the primary database, unless you are using sync_interval (though there is no issue with calling sync with sync_interval enabled):
try db.sync()