O que turso-db faz?
Turso (libSQL): SQLite replicado na borda — configuração, consultas e padrões de replicação para aplicações serverless
Introdução
Turso é um banco de dados SQLite de código aberto, distribuído globalmente e otimizado para cargas de trabalho serverless. Ele usa o libSQL, um fork do SQLite, para oferecer replicação de leitura na borda.
Configuração
Instalação da CLI
curl -sSfL https://get.turso.tech | sh
Login e autenticação
turso auth login
Criar um banco de dados
turso db create my-database
Obter URL de conexão
turso db show my-database
Consultas
Cliente HTTP (libSQL)
import { createClient } from '@libsql/client'
const client = createClient({
url: 'libsql://my-database.turso.io',
authToken: process.env.TURSO_AUTH_TOKEN
})
await client.execute('SELECT * FROM users')
Replicação
Bancos de dados replicados
Bancos de dados replicados permitem leituras de baixa latência em regiões próximas aos usuários.
turso db locations add my-database fra ewr hkg
Padrões de replicação
- Replicação de leitura: Réplicas de leitura em locais na borda, gravações no primário.
- Replicação de gravação: Gravações distribuídas (experimental).
Exemplos
Criar tabela
CREATE TABLE IF NOT EXISTS tasks (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
completed BOOLEAN DEFAULT false
);
Inserir dados
await client.execute({
sql: 'INSERT INTO tasks (title, completed) VALUES (?, ?)',
args: ['Minha tarefa', false]
})