Crates.io | shuttle-turso |
lib.rs | shuttle-turso |
version | 0.49.0 |
source | src |
created_at | 2023-06-28 10:45:54.799526 |
updated_at | 2024-11-12 14:57:09.072075 |
description | Plugin to obtain a client connected to a Turso database |
homepage | |
repository | https://github.com/shuttle-hq/shuttle |
max_upload_size | |
id | 902033 |
size | 10,276 |
This plugin allows services to connect to a Turso database. Turso is an edge-hosted distributed database based on libSQL, a SQLite fork.
IMPORTANT: Currently Shuttle isn't able to provision a database for you (yet). This means you will have to create an account on their website and follow the few steps required to create a database and create a token to access it.
Add shuttle-turso
to the dependencies for your service by running cargo add shuttle-turso
.
This resource will be provided by adding the shuttle_turso::Turso
attribute to your Shuttle main
decorated function.
It returns a libsql::Connection
. When running locally it will instantiate a local SQLite database of the name of your service instead of connecting to your edge database.
If you want to connect to a remote database when running locally, you can specify the local_addr
parameter. In that case, the token will be read from your Secrets.dev.toml
file.
In the case of an Axum server, your main function will look like this:
use libsql::Connection;
use shuttle_axum::ShuttleAxum;
#[shuttle_runtime::main]
async fn app(
#[shuttle_turso::Turso(
addr="libsql://my-turso-db-name.turso.io",
token="{secrets.DB_TURSO_TOKEN}"
)] client: Connection,
) -> ShuttleAxum {}
Parameter | Type | Default | Description |
---|---|---|---|
addr | str |
"" |
URL of the database to connect to. Should begin with either libsql:// or https:// . |
token | str |
"" |
The value of the token to authenticate against the Turso database. You can use string interpolation to read a secret from your Secret.toml file. |
local_addr | Option<str> |
None |
The URL to use when running your service locally. If not provided, this will default to a local file named <service name>.db |