Third party developer tools
There are a number of tools supported by third party organizations that work with Turso and libSQL.
If you're interested in adding libSQL support to your own tool, please reach out to us to coordinate.
ORMs
Drizzle ORM
Drizzle ORM is a TypeScript ORM for SQL databases designed with maximum type safety in mind. Drizzle supports libSQL, with an complete example that shows how to build a Hono server that:
- Declares a Drizzle schema for tables
- Uses a Zod validator with the schema to handle incoming JSON
- Uses the schema make queries with a type-safe, fluent API
- Switch seamlessly between SQLite local file and Turso remote database
Go to the example for libSQL on the Drizzle GitHub.
SQLAlchemy
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. A dialect is provided for libSQL, which works with Turso. The only requirement for Turso is the construction of a URL in a special format that instructs SQLAlchemy to use this dialect, which is discussed in the README of the dialect repo.
Go to the SQLAlchemy libSQL dialect repo on GitHub.
Query builders
Kysely
Kysely is a type-safe and autocompletion-friendly TypeScript SQL query builder. libSQL provides a plugin (dialect) that allows you to take full advantage of the features of Kysely.
Go to the Kysely libSQL dialect repo on GitHub.
Knex.js
Knex.js is a "batteries included" SQL query builder for a variety of databases, designed to be flexible, portable, and fun to use. It supports use of libSQL sqld instances in the same way that it supports local SQLite files by swapping the sqlite3 module with libsql-node-sqlite3.
Go to example code in the libsql-node-sqlite3 README.
Compatibility libraries
libsql-node-sqlite3 (node-sqlite3 replacement)
The sqlite3 node module is commonly used to access SQLite database files. libSQL provides a drop-in replacement module for this that exposes the same API, accessing a libSQL sqld instance instead. This replacement module can also be used with Knex.js.