Turso - это бессерверная база данных, построенная на базе SQLite, которая умеет распределять данные по разным регионам мира. Если вы устали от того, что ваша БД отвечает медленно для пользователей из Австралии, пока ваш сервер стоит во Франкфурте - Turso это честно пытается решить. Он берет обычный SQLite (который все любят за простоту), добавляет ему возможность репликации "от края" (edge replication) и упаковывает в облачный сервис. Получается быстро, дешево и без необходимости поднимать полноценный кластер PostgreSQL.
Главная фишка Turso - "embedded replicas". Вы не просто читаете из удаленной базы через сеть, а можете развернуть легковесную копию SQLite прямо рядом с вашим серверным кодом (например, на Vercel Edge Functions или Cloudflare Workers). Данные реплицируются в фоне, а чтение идет с нулевой задержкой. По сути, это попытка скрестить удобство SQLite с масштабированием, которое обычно дают только тяжелые базы вроде CockroachDB.
# Установка CLI
curl -sSfL https://get.turso.tech | sh
# Создание базы
turso db create my-app-db
# Создание реплики в другом регионе (например, в Индии)
turso db replicate my-app-db bom
# Получение токена доступа
turso db tokens create my-app-db
# Подключение через JS (npm install @libsql/client)
import { createClient } from "@libsql/client";
const db = createClient({
url: "libsql://my-app-db.turso.io",
authToken: "your-token-here",
});
const result = await db.execute("SELECT * FROM users WHERE id = ?", [1]);
console.log(result.rows);
Плюсы: Дикая скорость чтения на edge - это реально работает, если ваши пользователи размазаны по миру. Никакой настройки кластеров, просто одна команда в CLI. SQLite - это надежно и предсказуемо, в отличие от NoSQL-решений, где потом удивляешься поведению запросов. Очень щедрый бесплатный лимит, можно крутить pet-проекты годами без оплаты. libsql - молодцы, асинхронность в SQLite это боль, которую они решили элегантно.
Минусы: Запись идет только в "основную" (primary) базу, реплики read-only. Если вы пишете много и часто, узким местом станет основная нода, и распределение вам не поможет. Модель консистентности - "eventual consistency" для реплик. То есть, после записи читать с реплики можно старые данные пару секунд. Нет полноценных JOIN между разными базами (куда, впрочем, это и не предполагается). Для сложных аналитических отчетов с терабайтами данных SQLite все еще не годится, тут Turso не спасет.
Turso стоит попробовать, если вы строите приложение с глобальной аудиторией и вам не нужно писать по 10 тысяч запросов в секунду в одну таблицу. Идеально ложится на JAMstack, Next.js на Vercel или Cloudflare Workers. Если у вас монолит на одном сервере в одном дата-центре - вам, скорее всего, хватит обычного SQLite или PostgreSQL, Turso даст только головную боль с репликацией без реального профита. Но для edge-среды и быстрых ответов пользователям по всему миру - это, пожалуй, самый простой и дешевый вариант на рынке прямо сейчас.
Комментариев пока нет