Turso Quickstart (Rust)
Get started with Turso and Rust using the libSQL crate in a few simple steps
In this Rust quickstart we will learn how to:
- Retrieve database credentials
- Install the Rust libSQL crate
- Connect to a local or remote Turso database
- Execute a query using SQL
- Sync changes to local database (optional)
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=
Install
First begin by installing the libsql
crate:
cargo add libsql
Connect
You must first create a Database
object and then open a Connection
to it:
Execute
You can execute a SQL query against your existing database by calling execute()
:
conn.execute("SELECT * FROM users", ()).await?;
If you need to use placeholders for values, you can do that:
To retrieve results from a query, you can use the query()
method:
let mut rows = conn.query("SELECT * FROM users", ()).await?;
while let Some(row) = rows.next().await? {
let id: i64 = row.get(0)?;
let name: String = row.get(1)?;
println!("User: {} - {}", id, name);
}
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:
db.sync().await.unwrap();
You can also set up automatic periodic syncing when creating the database:
use std::time::Duration;
let db = Builder::new_remote_replica("local.db", url, token)
.sync_interval(Duration::from_secs(60))
.build()
.await?;
This will automatically sync the database every 60 seconds.