Databases for all TypeScript and JS multi-tenant apps.
Turso · Docs · Quickstart · SDK Reference · Blog & Tutorials
- 🔌 Works offline with Embedded Replicas
- 🌎 Works with remote Turso databases
- ✨ Works with Turso AI & Vector Search
- 🔐 Supports encryption at rest
npm install @libsql/client
The example below uses Embedded Replicas and syncs every minute from Turso.
import { createClient } from "@libsql/client";
export const turso = createClient({
url: "file:local.db",
syncUrl: process.env.TURSO_DATABASE_URL,
authToken: process.env.TURSO_AUTH_TOKEN,
syncInterval: 60000,
});
await turso.batch(
[
"CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)",
{
sql: "INSERT INTO users(name) VALUES (?)",
args: ["Iku"],
},
],
"write",
);
await turso.execute({
sql: "SELECT * FROM users WHERE id = ?",
args: [1],
});
Example | Description |
---|---|
local | Uses libsql with a local SQLite file. Creates database, inserts data, and queries. |
remote | Connects to a remote database. Requires environment variables for URL and auth token. |
sync | Demonstrates synchronization between local and remote databases. |
batch | Executes multiple SQL statements in a single batch operation. |
transactions | Shows transaction usage: starting, performing operations, and committing/rolling back. |
memory | Uses an in-memory SQLite database for temporary storage or fast access. |
vector | Works with vector embeddings, storing and querying for similarity search. |
encryption | Creates and uses an encrypted SQLite database, demonstrating setup and data operations. |
Visit our official documentation.
Join us on Discord to get help using this SDK. Report security issues via email.
See the contributing guide to learn how to get involved.