tursodatabase/libsql

GitHub: tursodatabase/libsql

libSQL 是一个开放贡献的 SQLite 分支,在保持完全兼容的同时引入了嵌入式副本、远程访问及多种语言驱动等扩展能力。

Stars: 16861 | Forks: 500

libSQL by Turso

libSQL

libSQL 是 SQLite 的一个开源、开放贡献的分支,由 Turso 创建和维护。

libSQL 文档 · libSQL 宣言 · Turso · Turso 文档 · Discord · 博客与教程

MIT discord activity phorm.ai

## 文档 我们旨在使其发展以满足比 SQLite 最初设计的更多用例,并计划在合理的地方使用第三方 OSS 代码。 libSQL 有许多很棒的功能,包括: * Embedded replicas,允许您在应用内拥有复制的数据库。 * [libSQL server](libsql-server) 用于远程 SQLite 访问,类似于 PostgreSQL 或 MySQL * 支持 Rust、JavaScript、Python、Go 等。 此外,对核心 SQLite 还有各种改进和扩展: * [`ALTER TABLE` 扩展,用于修改列类型和约束](https://github.com/tursodatabase/libsql/blob/main/libsql-sqlite3/doc/libsql_extensions.md#altering-columns) * [随机 ROWID](https://github.com/tursodatabase/libsql/issues/12) * [WebAssembly 用户定义函数](https://turso.tech/blog/webassembly-functions-for-your-sqlite-compatible-database-7e1ad95a2aa7) * [将 SQL 字符串传递给虚拟表实现](https://github.com/tursodatabase/libsql/pull/87) * [虚拟预写日志接口](https://github.com/tursodatabase/libsql/pull/53) 完整的描述可以在[这里](libsql-sqlite3/doc/libsql_extensions.md)找到 ### 官方驱动程序 * [TypeScript / JS](https://github.com/tursodatabase/libsql-client-ts) * [Rust](libsql) * [Go](https://github.com/tursodatabase/go-libsql) * [Go (无 CGO)](https://github.com/tursodatabase/libsql-client-go) ### 实验性驱动程序 * [Python](https://github.com/tursodatabase/libsql-experimental-python)(实验性) * [C](bindings/c)(实验性) ### 社区驱动程序 * [PHP](https://github.com/tursodatabase/turso-client-php) * [D](https://github.com/pdenapo/libsql-d)(实验性,基于 C 驱动程序) * [Ring](https://github.com/ysdragon/ring-libsql)(实验性,基于 C 驱动程序) ### GUI 支持 * [Beekeeper Studio](https://www.beekeeperstudio.io/db/libsql-client/) — macOS、Windows 和 Linux * [Outerbase](https://www.outerbase.com) — 在浏览器中运行 * [TablePlus](https://tableplus.com) — macOS、Windows 和 Linux * [Dataflare](https://dataflare.app) — 付费(提供有限的免费版本)macOS、Windows 和 Linux * [libSQL Studio](https://github.com/invisal/libsql-studio) - 在浏览器中运行 ## 入门指南 该项目提供两种接口:支持所有功能的 libSQL API,以及用于兼容性的 SQLite C API。 要构建兼容 SQLite 的 C 库和工具,请运行: ``` cargo xtask build ``` 要运行 SQL shell,请启动 `libsql` 程序: ``` $ cd libsql-sqlite3 && ./libsql libSQL version 0.2.1 (based on SQLite version 3.43.0) 2023-05-23 11:47:56 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. libsql> ``` ### Docker 要使用 docker 运行 libSQL,请参阅 [Docker 文档](docs/DOCKER.md) ## 为什么要创建分支? SQLite 已经在现代技术栈中占据了稳固的地位,几乎嵌入到了您能想到的任何计算设备中。其开源性质和公有领域可用性使其成为针对特定用例进行修改的热门选择。 但是,尽管 SQLite 的代码是公开的,但众所周知,它不接受外部贡献者,也不遵守行为准则。因此,社区的改进无法被广泛享受。 过去也有过其他的分支,但它们都专注于特定的技术差异。我们的目标是成为一个社区,让人们可以从许多不同的角度和动机进行贡献。 我们希望看到这样一个世界:每个人都能从 SQLite 社区回馈给代码库的所有出色想法和辛勤工作中受益。社区的贡献运作良好,因为我们以前就做到过。如果这是可能的,您认为 SQLite 能变成什么样? 您可以在我们的[产品愿景](https://turso.tech/libsql-manifesto)中阅读更多关于我们的目标和动机的信息。 ## 与 SQLite 的兼容性 与 SQLite 的兼容性对我们来说非常重要。但它可能意味着很多事情。所以以下是我们的立场: * **文件格式**:libSQL 将始终能够摄取和写入 SQLite 文件格式。我们很乐意添加诸如加密和 CRC 之类的扩展,这些扩展需要更改文件。但是我们承诺,如果不使用这些功能,我们将始终以生成标准 SQLite 文件的方式进行。 * **API**:libSQL 将保持与 SQLite API 100% 的兼容性,但我们可能会添加额外的 API。 * **嵌入式**:SQLite 是一个嵌入式数据库,可以作为单个 .c 文件及其随附的头文件来使用。libSQL 将始终是可嵌入的,这意味着它可以在您的进程内运行,而无需网络连接。但是我们可能会更改分发方式,以便生成目标文件,而不是单个 .c 文件。 ## 许可证 libSQL 根据 [开源许可证](LICENSE.md) 获得授权,并且我们遵守明确的[行为准则](CODE_OF_CONDUCT.md)。
标签:SQLite, 关系型数据库, 可视化界面, 客户端加密, 开源, 数据库, 日志审计, 请求拦截, 逆向工具