limbo/packages/turso-serverless
2025-09-10 13:42:21 +05:30
..
examples Add @tursodatabase/serverless package 2025-07-21 22:03:43 +03:00
integration-tests serverless: Add Statement.run() method 2025-07-24 13:50:09 +03:00
src await on .close() 2025-09-10 13:42:21 +05:30
AGENT.md Add @tursodatabase/serverless package 2025-07-21 22:03:43 +03:00
package-lock.json serverless: 0.1.3 2025-08-13 09:56:43 +03:00
package.json serverless: 0.1.3 2025-08-13 09:56:43 +03:00
README.md Unify JavaScript package README files 2025-08-12 19:30:02 +03:00
tsconfig.json Add @tursodatabase/serverless package 2025-07-21 22:03:43 +03:00

Turso Serverless Driver for JavaScript

npm

Chat with other users of Turso on Discord


About

A serverless database driver for Turso Cloud, using only fetch(). Connect to your database from serverless and edge functions, such as Cloudflare Workers and Vercel.

📝 Note: This driver is experimental and, therefore, subject to change at any time.

Installation

npm install @tursodatabase/serverless

Getting Started

Basic Usage

import { connect } from "@tursodatabase/serverless";

const conn = connect({
  url: process.env.TURSO_DATABASE_URL,
  authToken: process.env.TURSO_AUTH_TOKEN,
});

// Prepare a statement
const stmt = conn.prepare("SELECT * FROM users WHERE id = ?");

// Get first row
const row = await stmt.get([123]);
console.log(row);

// Get all rows
const rows = await stmt.all([123]);
console.log(rows);

// Iterate through rows (streaming)
for await (const row of stmt.iterate([123])) {
  console.log(row);
}

Batch Operations

// Execute multiple statements in a batch
await conn.batch([
  "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, email TEXT)",
  "INSERT INTO users (email) VALUES ('user@example.com')",
  "INSERT INTO users (email) VALUES ('admin@example.com')",
]);

libSQL Compatibility Layer

For existing libSQL applications, use the compatibility layer:

import { createClient } from "@tursodatabase/serverless/compat";

const client = createClient({
  url: process.env.TURSO_DATABASE_URL,
  authToken: process.env.TURSO_AUTH_TOKEN,
});

// Execute a single SQL statement
const result = await client.execute("SELECT * FROM users WHERE id = ?", [123]);
console.log(result.rows);

// Execute multiple statements in a batch
await client.batch([
  "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, email TEXT)",
  "INSERT INTO users (email) VALUES ('user@example.com')",
  "INSERT INTO users (email) VALUES ('admin@example.com')",
]);

Examples

Check out the examples/ directory for complete usage examples.

API Reference

For complete API documentation, see JavaScript API Reference.

License

This project is licensed under the MIT license.

Support