libsql
约 2 分钟阅读
- 支持 replica sync - read 访问本地 sqlite,write 访问远程
- 支持 CS 结构
- 支持协议
- HTTP
- WebSocket
- SQLite API - embed
- tursodatabase/libsqlGitHubtursodatabase/libsql支持 replica sync - read 访问本地 sqlite,write 访问远程 · 支持 CS 结构 · 支持协议 · HTTP · WebSocket · SQLite API - embed · tursodatabase/libsql笔记:libsql
- MIT, C
- fork of SQLite
- SQLite ABI
- SQLite C API
- PostgreSQL wire protocol
- backend SQLite, mvSQLite/FoundationDB
- 社区运营,接受贡献
- 特性GitHub 文件tursodatabase/libsql/libsql-sqlite3/doc/libsql_extensions.md
ALTER TABLE ... ALTER COLUMN ...- WASM UDF
- RANDOM ROWID
- Virtual WAL - 可以 hook WAL 实现
- libsql_close_hook
- tursodatabase/libsql/libsql-serverGitHub 文件tursodatabase/libsql/libsql-server
- MIT, Rust
- 服务端
- 参考
- tursodatabase/libsql-client-tsGitHubtursodatabase/libsql-client-ts
- tursodatabase/libsql-client-goGitHubtursodatabase/libsql-client-go
- tursodatabase/libsql-client-rsGitHubtursodatabase/libsql-client-rs
- tursodatabase/libsql-jsGitHubtursodatabase/libsql-js
- better sqlite API
- DataGrip 支持 DBE-21330
- 扩展 docs.turso.tech/libsql链接docs.turso.tech/libsql支持 replica sync - read 访问本地 sqlite,write 访问远程 · 支持 CS 结构 · 支持协议 · HTTP · WebSocket · SQLite API - embed · tursodatabase/libsql笔记:libsql
brew install libsql
sqld --http-listen-addr 0.0.0.0:8080 --grpc-listen-addr 0.0.0.0:5001 --db-path ./db/ --admin-listen-addr 0.0.0.0:8088 --enable-namespaces
# 服务端的 DB
sqlite3 db/dbs/default/data ".table"
# HTTP
curl -d '{"statements": ["SELECT * FROM users"]}' 127.0.0.1:8080
# Multitenancy
# AMIN
curl -X POST http://localhost:8088/v1/namespaces/wener/create -v --json '{}'
# wener.local 会从 host 获取 namespace - 因为 grpc 默认情况不支持 pathimport { createClient } from '@libsql/client';
const client = createClient({
url: 'http://localhost:8080',
});
await client.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
await client.execute('INSERT INTO users (name) VALUES (?)', ['Alice']);
const result = await client.execute('SELECT * FROM users');
console.log(result.rows);
// 本地副本
const client = createClient({
url: 'file:path/to/db-file.db',
authToken: '...',
syncUrl: '...',
syncInterval: 60,
});sqld
- tursodatabase/libsql/libsql-serverGitHub 文件tursodatabase/libsql/libsql-server
- MIT, Rust
- 服务端
Docker
| env | for |
|---|---|
| SQLD_HTTP_AUTH | basic:${base64('user:pass')} |
| SQLD_AUTH_JWT_KEY_FILE | |
| SQLD_AUTH_JWT_KEY | |
| SQLD_DB_PATH | iku.db |
| SQLD_NODE | primary/replica/standalone |
| SQLD_PRIMARY_URL | for replica, gRPC URL, https://<host>:<port> |
| SQLD_HTTP_LISTEN_ADDR | 0.0.0.0 |
| SQLD_GRPC_LISTEN_ADDR | 0.0.0.0 |
| SQLD_HEARTBEAT_URL |
# -e SQLD_NODE=replica
docker run --rm -it \
-v $PWD/data:/var/lib/sqld \
-p 8080:8080 \
-e SQLD_NODE=primary \
--name sqld ghcr.io/tursodatabase/libsql-server:latestNotes
- ADMIN
POST /v1/namespaces/:namespace/create{"dump_url":""}DELETE /v1/namespaces/:namespacePOST /v1/namespaces/:namespace/fork/:to
- replica sync 需要本地存储
- frame = 4kB
- tursodatabase/libsql/docs/USER_GUIDE.mdGitHub 文件tursodatabase/libsql/docs/USER_GUIDE.md
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub9 条
- tursodatabase/libsql/libsql-servergithub.com/tursodatabase/libsql/tree/main/libsql-server
- tursodatabase/libsqlgithub.com/tursodatabase/libsql
- tursodatabase/libsql-client-gogithub.com/tursodatabase/libsql-client-go
- tursodatabase/libsql-client-rsgithub.com/tursodatabase/libsql-client-rs
- tursodatabase/libsql-client-tsgithub.com/tursodatabase/libsql-client-ts
- tursodatabase/libsql-jsgithub.com/tursodatabase/libsql-js
- tursodatabase/libsql/docs/DOCKER.mdgithub.com/tursodatabase/libsql/blob/main/docs/DOCKER.md
- tursodatabase/libsql/docs/USER_GUIDE.mdgithub.com/tursodatabase/libsql/blob/main/docs/USER_GUIDE.md
- tursodatabase/libsql/libsql-sqlite3/doc/libsql_extensions.mdgithub.com/tursodatabase/libsql/blob/main/libsql-sqlite3/doc/libsql_extensions.md
其他外链2 条
- docs.turso.tech/libsqldocs.turso.tech/libsql
- youtrack.jetbrains.com/issue/DBE-21330youtrack.jetbrains.com/issue/DBE-21330