这个项目能做什么

libSQL 是由 Turso 创建并维护的社区导向型 SQLite 分支。该项目旨在扩展 SQLite 以支持更多使用场景,同时保持嵌入式特性及与现有 SQLite 数据库和 API 的兼容性。 核心功能包括:应用程序内的嵌入式副本(用于复制数据库)、类似传统数据库服务器的 libSQL 服务器(支持远程访问),以及核心扩展,例如支持修改列类型和约束的 ALTER TABLE、随机 ROWID 值、WebAssembly 用户自定义函数、虚拟表的 SQL 透传,以及虚拟预写日志接口。 该仓库提供两种接口:功能丰富的 libSQL API 和兼容 SQLite 的 C API。它可以使用 Cargo 构建兼容 SQLite 的 C 库和命令行工具,并包含 libsql SQL shell。Docker 用法另有文档说明。 官方驱动支持 TypeScript/JavaScript、Rust、Go 及无 CGO 的 Go。实验性支持包括 Python 和 C,社区驱动支持 PHP、D 和 Ring。支持的 GUI 客户端包括 Beekeeper Studio、Outerbase、TablePlus、Dataflare 和 libSQL Studio。 项目声明将继续读写标准 SQLite 文件格式,保持 SQLite API 兼容性,并可作为嵌入式进程内数据库使用。可选的文件格式扩展在未使用时将生成标准 SQLite 文件。 README 明确区分了 libSQL 与 Turso 数据库:libSQL 是 SQLite 分支,继承 SQLite 的单写入者模型;而 Turso 数据库是独立的基于 Rust 的 SQLite 兼容实现,支持并发写入和双向同步。libSQL 保持积极维护,而新功能开发被描述为在 Turso 中进行。 libSQL 采用 MIT 许可证开源,并包含行为准则。