libSQL driver for TypeScript and JavaScript
npm install @libsql/client
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
``bash`
npm install @libsql/client
The example below uses Embedded Replicas and syncs every minute from Turso.
`ts
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. |
| ollama | Similarity search with Ollama and Mistral. |
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.