Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turso

Millions of databases. Zero config.

Spin up a Turso database for every user, agent, and tenant — provisioned on demand, no dashboards. On Turso Cloud or your own infrastructure (BYOC).

Turso · Docs · Blog & Tutorials

MIT License Discord npm version

Name a database and start querying — it's provisioned the first time you touch it:

import { resolve } from "@tursodatabase/sdk-experimental";
import { connect } from "@tursodatabase/serverless";

// One database per agent — provisioned on first use.
const db = connect(await resolve(`agent-${agentId}`));

await db.exec("CREATE TABLE IF NOT EXISTS memories (content TEXT NOT NULL)");
await db.run("INSERT INTO memories (content) VALUES (?)", "User prefers concise answers.");

Features

  • Zero-config provisioning — Databases are created on first use. No dashboards, no setup steps.
  • A database for everyone — Give every user, agent, or tenant their own database. Lightweight enough to multiply into millions.
  • Bring your own driverresolve() returns a config you pass straight to connect() from @tursodatabase/serverless, an ORM, or any libsql-compatible client.
  • Cloud or BYOC — Works against Turso Cloud or your own infrastructure (Bring Your Own Cloud).

Install

npm install @tursodatabase/sdk-experimental @tursodatabase/serverless

Setup

  1. Get your Turso API token:

    turso auth api-tokens mint my-app-token
  2. Get your organization slug:

    turso org list
  3. Create a database group for your app (or use an existing one):

    turso group create my-project
  4. Set these environment variables for your app:

    TURSO_API_TOKEN=your-api-token
    TURSO_ORG=your-org-slug
    TURSO_GROUP=my-project
    

All databases are scoped to the configured group. You can create as many databases as you like within it, and they can only be created in and accessed from that group.

Quickstart

import { resolve } from "@tursodatabase/sdk-experimental";
import { connect } from "@tursodatabase/serverless";

// One database per tenant — provisioned automatically on first use.
const db = connect(await resolve(`tenant-${tenantId}`));

// Create tables
await db.exec(`
  CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE
  )
`);

// Insert data
await db.run(
  "INSERT INTO users (name, email) VALUES (?, ?)",
  "Alice", "alice@example.com"
);

// Query data
const users = await db.all("SELECT * FROM users");
console.log(users);

Everything after connect() is the @tursodatabase/serverless SDK — prepared statements, batches, and transactions all work as documented there.

API Reference

See the Manual for the full API reference — resolve and its options, including encryption.

Documentation

Visit our official documentation for more details.

Support

Join us on Discord to get help using this SDK. Report security issues via email.

About

Turso TypeScript SDK is an interface for programmatically interacting with Turso Cloud.

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages