Skip to main content
Turso is currently in BETA. It may contain bugs and unexpected behavior. Use caution with production data and ensure you have backups.

CLI

The tursodb CLI provides an interactive SQL shell, an MCP server mode, and database management utilities.
curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh
Verify the installation:
tursodb --version

Docker

If you prefer Docker, build and run the CLI image from the repository root:
make docker-cli-build && \
make docker-cli-run

Rust

The turso crate provides an async Rust API built on Tokio. It is compatible with the rusqlite interface pattern. Requirements: Rust stable, Tokio runtime
cargo add turso
cargo add tokio --features full
To enable cloud sync with Turso Cloud, add the sync feature:
[dependencies]
turso = { version = "0.6.0-pre.5", features = ["sync"] }
tokio = { version = "1.0", features = ["full"] }
See the Rust binding reference for the full API including Builder, Connection, and prepared statements.

JavaScript

The @tursodatabase/database package runs in Node.js with full TypeScript support. A WebAssembly build is available for browser environments. Requirements: Node.js; Linux (x86, arm64), macOS, or Windows
npm install @tursodatabase/database

WebAssembly (browser)

For browser environments, install the WebAssembly variant:
npm install @tursodatabase/database --cpu wasm32
PackageDescription
@tursodatabase/serverlessServerless driver with the same API
@tursodatabase/syncBidirectional sync with Turso Cloud
See the JavaScript binding reference for the full API.

Python

The pyturso package provides a DB-API 2.0-compatible interface and asyncio support. Requirements: Python 3.8+; Linux, macOS, or Windows
uv pip install pyturso
See the Python binding reference for synchronous, asyncio, and sync driver usage.

Go

The tursogo driver implements the standard database/sql interface. It uses purego to call Rust functions without CGO. Requirements: Go 1.21+; Linux, macOS, or Windows
go get turso.tech/database/tursogo
Import the driver with a blank import to register the "turso" driver name:
import (
    "database/sql"
    _ "turso.tech/database/tursogo"
)

conn, err := sql.Open("turso", "mydb.db")
See the Go binding reference for the sync driver and full API.

Java

Turso integrates with Java through a JDBC driver. The Maven Central artifact is tech.turso:turso.
The Java binding has not yet been published to Maven Central. You must build the JAR locally and publish it to your local Maven repository before use.

Build and publish locally

cd bindings/java

# Select your platform: macos_x86, macos_arm64, windows, linux_x86
make macos_arm64

# Publish to local Maven repository
make publish_local
Once published locally, add the dependency to your build file:
dependencies {
    implementation("tech.turso:turso:0.0.1-SNAPSHOT")
}
See the Java binding reference for JDBC usage details.

Platform support

PlatformCLIRustJavaScriptPythonGo
Linux x86_64YesYesYesYesYes
Linux arm64YesYesYesYesYes
macOSYesYesYesYesYes
WindowsYesYesYesYesYes
Browser (WASM)Yes

Build docs developers (and LLMs) love