tursodatabase/turso
GitHub: tursodatabase/turso
一个用 Rust 从头重写的 SQLite 兼容进程内数据库,提供原生异步 I/O、向量搜索和 AI 集成能力。
Stars: 17732 | Forks: 779
Turso Database
一个进程内 SQL 数据库,兼容 SQLite。
## 关于 Turso Database 是一个用 Rust 编写的进程内 SQL 数据库,兼容 SQLite。 ## 功能与路线图 * **SQLite 兼容性**:支持 SQL 方言、文件格式和 C API [详见[文档](COMPAT.md)] * **变更数据捕获 (CDC)**:用于实时跟踪数据库变更。 * **多语言支持**: * [Go](bindings/go) * [JavaScript](bindings/javascript) * [Java](bindings/java) * [Python](bindings/python) * [Rust](bindings/rust) * [WebAssembly](bindings/javascript) * **异步 I/O**:在 Linux 上支持 `io_uring` * **跨平台**:支持 Linux、macOS、Windows 和浏览器(通过 WebAssembly) * **向量支持**:包括精确搜索和向量操作 * **改进的模式管理**:包括扩展的 `ALTER` 支持和更快的模式变更。 该数据库具有以下实验性功能: * **`BEGIN CONCURRENT`**:通过多版本并发控制 (MVCC) 提高写入吞吐量。 * **静态加密**:用于本地数据保护。 * **增量计算**:使用 DBSP 进行增量视图维护和查询订阅。 * **全文搜索**:由强大的 [tantivy](https://github.com/quickwit-oss/tantivy) 库驱动 以下功能是我们当前路线图上的内容: * **向量索引**:用于快速近似向量搜索,类似于 [libSQL 向量搜索](https://turso.tech/vector)。 ## 入门指南 请参阅 [Turso Database 手册](docs/manual.md) 获取更多信息。💻 命令行
你可以使用以下命令安装最新的 `turso` 版本: ``` curl --proto '=https' --tlsv1.2 -LsSf \ https://github.com/tursodatabase/turso/releases/latest/download/turso_cli-installer.sh | sh ``` 然后启动交互式 shell: ``` $ tursodb ``` 这将启动 Turso 交互式 shell,你可以在其中执行 SQL 语句: ``` Turso Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database turso> CREATE TABLE users (id INT, username TEXT); turso> INSERT INTO users VALUES (1, 'alice'); turso> INSERT INTO users VALUES (2, 'bob'); turso> SELECT * FROM users; 1|alice 2|bob ``` 你也可以使用以下命令构建并运行最新的开发版本: ``` cargo run ``` 如果你喜欢 docker,我们也为你准备好了。只需在根文件夹中运行: ``` make docker-cli-build && \ make docker-cli-run ```
🦀 Rust
``` cargo add turso ``` 示例用法: ``` let db = Builder::new_local("sqlite.db").build().await?; let conn = db.connect()?; let res = conn.query("SELECT * FROM users", ()).await?; ```
✨ JavaScript
``` npm i @tursodatabase/database ``` 示例用法: ``` import { connect } from '@tursodatabase/database'; const db = await connect('sqlite.db'); const stmt = db.prepare('SELECT * FROM users'); const users = stmt.all(); console.log(users); ```
🐍 Python
``` uv pip install pyturso ``` 示例用法: ``` import turso con = turso.connect("sqlite.db") cur = con.cursor() res = cur.execute("SELECT * FROM users") print(res.fetchone()) ```
🦫 Go
``` go get turso.tech/database/tursogo go install turso.tech/database/tursogo ``` 示例用法: ``` import ( "database/sql" _ "turso.tech/database/tursogo" ) conn, _ = sql.Open("turso", "sqlite.db") defer conn.Close() stmt, _ := conn.Prepare("select * from users") defer stmt.Close() rows, _ = stmt.Query() for rows.Next() { var id int var username string _ := rows.Scan(&id, &username) fmt.Printf("User: ID: %d, Username: %s\n", id, username) } ```
☕️ Java
我们将 Turso Database 集成到了 JDBC 中。有关如何在 Java 中使用 Turso Database 的详细说明,请参阅 [bindings/java 下的 README.md](bindings/java/README.md)。
🤖 MCP Server 模式
Turso CLI 包含一个内置的 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 服务器,允许 AI 助手与你的数据库进行交互。 使用以下命令启动 MCP 服务器: ``` tursodb your_database.db --mcp ``` ### 配置 将 Turso 添加到你的 MCP 客户端配置中: ``` { "mcpServers": { "turso": { "command": "/path/to/.turso/tursodb", "args": ["/path/to/your/database.db", "--mcp"] } } } ``` ### 可用工具 MCP 服务器提供了九个用于数据库交互的工具: 1. **`open_database`** - 打开一个新数据库 2. **`current_database`** - 描述当前数据库 3. **`list_tables`** - 列出数据库中的所有表 4. **`describe_table`** - 描述特定表的结构 5. **`execute_query`** - 执行只读 SELECT 查询 6. **`insert_data`** - 向表中插入新数据 7. **`update_data`** - 更新表中的现有数据 8. **`delete_data`** - 从表中删除数据 9. **`schema_change`** - 执行模式修改语句 (CREATE TABLE, ALTER TABLE, DROP TABLE) 连接后,你可以向 AI 助手提问: - "Show me all tables in the database" - "What's the schema for the users table?" - "Find all posts with more than 100 upvotes" - "Insert a new user with name 'Alice' and email 'alice@example.com'" ### MCP 客户端
Claude Code
如果你正在使用 [Claude Code](https://claude.ai/code),你可以使用内置的 MCP 管理命令轻松连接到你的 Turso MCP 服务器: #### 快速设置 1. **添加 MCP 服务器** 到 Claude Code: claude mcp add my-database -- tursodb ./path/to/your/database.db --mcp 2. **重启 Claude Code** 以激活连接 3. **开始查询** 你的数据库,通过自然语言即可! #### 命令分解 ``` claude mcp add my-database -- tursodb ./path/to/your/database.db --mcp # 名称 # 分隔符 # 数据库路径 # MCP flag ``` - **`my-database`** - 为你的 MCP 服务器选择任意名称 - **`--`** - Claude 选项与你的命令之间的必需分隔符 - **`tursodb`** - Turso database CLI - **`./path/to/your/database.db`** - SQLite 数据库文件的路径 - **`--mcp`** - 启用 MCP 服务器模式 #### 示例用法 ``` # 对于本地项目数据库 cd /your/project claude mcp add my-project-db -- tursodb ./data/app.db --mcp # 对于绝对路径 claude mcp add analytics-db -- tursodb /Users/you/databases/analytics.db --mcp # 对于特定项目(本地范围) claude mcp add project-db --local -- tursodb ./database.db --mcp ``` #### 管理 MCP 服务器 ``` # 列出所有已配置的 MCP 服务器 claude mcp list # 获取特定服务器的详细信息 claude mcp get my-database # 移除 MCP 服务器 claude mcp remove my-database ```Claude Desktop
对于 Claude Desktop,将配置添加到你的 `claude_desktop_config.json` 文件中: ``` { "mcpServers": { "turso": { "command": "/path/to/.turso/tursodb", "args": ["./path/to/your/database.db.db", "--mcp"] } } } ```Cursor
对于 Cursor,在你的设置中配置 MCP: 1. 打开 Cursor 设置 2. 导航到 Extensions → MCP 3. 添加一个新服务器: - **Name**: `turso` - **Command**: `/path/to/.turso/tursodb` - **Args**: `["./path/to/your/database.db.db", "--mcp"]` 或者,你可以直接将其添加到你的 Cursor 配置文件中。
## 贡献者
感谢 Turso Database 的所有贡献者!
标签:AI工具, CMS安全, JavaScript, JS文件枚举, LangChain, libsql, MIT许可, OLTP, Python, Rust, Serverless, SQL, SQLite, WASM, WebAssembly, 单文件数据库, 可视化界面, 后端开发, 存储引擎, 嵌入式数据库, 开源, 数据可视化, 数据库, 数据持久化, 无后门, 日志审计, 本地数据库, 系统审计, 结构化查询语言, 网络流量审计, 轻量级, 边缘计算, 进程内数据库, 逆向工具, 键值存储