Turso Database:以 Rust 延伸 SQLite 的資料庫實驗
Rust 中的 SQL 資料庫:與 SQLite 相容,現在也可以使用 Postgres(實驗性)。資料庫的 LLVM。
秒懂
- 它是什麼?
- A SQL database in Rust: SQLite-compatible, now also speaking Postgres (experimental). The LLVM of databases. 本文依 README 的元件、命令與限制整理。
- 適合誰用?
- 適合需要 turso 所描述能力、並能依 README 指定環境操作的人;不適合把專案宣稱直接當成自身環境保證的讀者。採用前先執行 tursodatabase/turso README 的入口命令,核對輸出、版本與實際依賴,再決定是否納入工作流程。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫在最近一天內有新的提交。
- 用什麼語言寫的?
- 主要是 Rust(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
Turso Database 是什麼
Turso Database 是一款用 Rust 編寫的處理序內 SQL 資料庫。它在 SQL 方言、檔案格式和 C API 層面相容於 SQLite,並且可以原樣開啟現有的 SQLite 資料庫檔案。README 稱它目前已在多個組織的生產環境中執行。它還擁有實驗性的 Postgres 前端,使用 Postgres 方言和線路協定。核心引擎在 SQL 層之下是共享的。
這個專案的 README 把上述元件放在同一條使用路徑上,讀者可從實際檔名、命令和設定項目判斷它是否符合自己的工作流程。 tursodatabase/turso。
turso 的第 1 個核對點是「Turso Database 是什麼」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 2 個核對點是「Turso Database 是什麼」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 3 個核對點是「Turso Database 是什麼」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 4 個核對點是「Turso Database 是什麼」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 5 個核對點是「Turso Database 是什麼」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 6 個核對點是「Turso Database 是什麼」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 7 個核對點是「Turso Database 是什麼」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 8 個核對點是「Turso Database 是什麼」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
VDBE 與「資料庫的 LLVM」
與 SQLite 類似,Turso 將 SQL 編譯為名為 VDBE 的虛擬機器的位元組碼,然後執行該位元組碼。這種設計讓單一引擎能夠承載多種 SQL 方言。SQLite 是原始且主要的編譯前端,Postgres 則是擁有自身方言和協定的第二個前端。專案的目標是成為資料庫領域的 LLVM:一個現代、可靠的內核,上面編譯多個前端。README 提到該位元組碼足夠通用,甚至可以執行 Doom。
這些細節代表它的價值取決於既有環境,而不是單靠專案描述就能推定;使用時應以 README 列出的入口和錯誤訊息核對結果。 tursodatabase/turso。
turso 的第 1 個核對點是「VDBE 與「資料庫的 LLVM」」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 2 個核對點是「VDBE 與「資料庫的 LLVM」」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 3 個核對點是「VDBE 與「資料庫的 LLVM」」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 4 個核對點是「VDBE 與「資料庫的 LLVM」」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 5 個核對點是「VDBE 與「資料庫的 LLVM」」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 6 個核對點是「VDBE 與「資料庫的 LLVM」」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 7 個核對點是「VDBE 與「資料庫的 LLVM」」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 8 個核對點是「VDBE 與「資料庫的 LLVM」」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
功能與路線圖
README 列出了 SQLite 相容性、用於提升寫入吞吐量的 BEGIN CONCURRENT(基於 MVCC)、變更資料捕獲(CDC)、對 Go、JavaScript、Java、.NET、Python、Rust 和 WebAssembly 的多語言支援、Linux 上基於 io_uring 的非同步 I/O、對 Linux、macOS、Windows 和瀏覽器的跨平台支援、向量支援(精確搜尋和操作),以及改進的 schema 管理。實驗性功能包括 Postgres 相容性、靜態加密、基於 DBSP 的增量計算、基於 tantivy 的全文搜尋,以及透過 .tshm 側車檔案實現的多程序 WAL 協調。路線圖上還有用於快速近似向量搜尋的向量索引。
素材沒有把所有硬體、版本或部署邊界都說完,因此本文只把 README 已明示的行為當成判斷依據,未將宣稱延伸成保證。 tursodatabase/turso。
turso 的第 1 個核對點是「功能與路線圖」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 2 個核對點是「功能與路線圖」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 3 個核對點是「功能與路線圖」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 4 個核對點是「功能與路線圖」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 5 個核對點是「功能與路線圖」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 6 個核對點是「功能與路線圖」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 7 個核對點是「功能與路線圖」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 8 個核對點是「功能與路線圖」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
開始使用
README 記錄了一個命令列安裝程式,用於取得最新版本,然後透過 `tursodb` 啟動互動式 shell。該 shell 預設連接到一個臨時記憶體資料庫,並支援使用 `.open` 重新開啟持久化資料庫。同一二進位檔案也可以透過 `cargo run` 從原始碼構建,並提供了 Docker make 目標。語言綁定包括 Rust(`cargo add turso`)、JavaScript(`npm i @tursodatabase/database`)、Python(`uv pip install pyturso`)、Go(`go get turso.tech/database/tursogo`)以及透過 JDBC 的 Java;.NET 使用示例展示了 `TursoConnection`。具體示例程式碼見 README。
對維護者而言,這些目錄與指令也是定位問題的線索:先確認輸入、產物和執行元件,再把觀察結果對照專案自己的說明。 tursodatabase/turso。
turso 的第 1 個核對點是「開始使用」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 2 個核對點是「開始使用」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 3 個核對點是「開始使用」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 4 個核對點是「開始使用」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 5 個核對點是「開始使用」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 6 個核對點是「開始使用」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 7 個核對點是「開始使用」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 8 個核對點是「開始使用」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
實驗性的 Postgres 前端和其他實驗功能
Postgres 前端被標記為實驗性,實現了 Postgres 的 SQL 方言和線路協定。它是增量的:SQLite 仍然是原始且主要的編譯前端。其他實驗功能包括靜態加密、基於 DBSP 的增量計算、由 tantivy 庫驅動的全文搜尋,以及透過 `.tshm` 側車檔案實現的多程序 WAL 協調。README 指向一個相容性參考文件以取得 Postgres 的詳細資訊。這些功能均不提供穩定性保證,明確列為實驗性。
若要採用,應先在與專案相同的執行條件下走一次它提供的流程,特別記錄命令輸出、產物位置和版本差異。 tursodatabase/turso。
turso 的第 1 個核對點是「實驗性的 Postgres 前端和其他實驗功能」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 2 個核對點是「實驗性的 Postgres 前端和其他實驗功能」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 3 個核對點是「實驗性的 Postgres 前端和其他實驗功能」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 4 個核對點是「實驗性的 Postgres 前端和其他實驗功能」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 5 個核對點是「實驗性的 Postgres 前端和其他實驗功能」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 6 個核對點是「實驗性的 Postgres 前端和其他實驗功能」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 7 個核對點是「實驗性的 Postgres 前端和其他實驗功能」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 8 個核對點是「實驗性的 Postgres 前端和其他實驗功能」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
MCP 伺服器模式
Turso CLI 內建了一個模型上下文協定(MCP)伺服器,透過 `tursodb your_database.db --mcp` 啟動。它提供了九個工具:open_database、current_database、list_tables、describe_table、execute_query、insert_data、update_data、delete_data 和 schema_change。README 中包含了 Claude Code、Claude Desktop 和 Cursor 的配置示例,以及透過 stdin/stdout 直接進行 JSON-RPC 呼叫的示例。該伺服器旨在讓 AI 助手與資料庫互動。
這種安排使文章不只描述功能,也指出了實際使用的邊界:README 沒有承諾的部分,不能從星數、效能數字或功能名稱推導出來。 tursodatabase/turso。
turso 的第 1 個核對點是「MCP 伺服器模式」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 2 個核對點是「MCP 伺服器模式」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 3 個核對點是「MCP 伺服器模式」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 4 個核對點是「MCP 伺服器模式」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 5 個核對點是「MCP 伺服器模式」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 6 個核對點是「MCP 伺服器模式」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 7 個核對點是「MCP 伺服器模式」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 8 個核對點是「MCP 伺服器模式」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
生產狀態、測試與授權
FAQ 稱 Turso 已被 Turso Cloud、Kin AI 助手和 Spice.ai 用於生產環境,並透過原生確定性模擬測試套件和 Antithesis 進行測試。該專案尚未達到 1.0 版本,SQLite 相容性也尚未達到 100%,差異記錄在 COMPAT.md 中。完全相容是 1.0 的必備條件。該專案採用 MIT 授權,且除非另有說明,貢獻預設按 MIT 授權。授權文字包含標準的無擔保條款,未涉及支援或安全保證。
turso 的第 1 個核對點是「生產狀態、測試與授權」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 2 個核對點是「生產狀態、測試與授權」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 3 個核對點是「生產狀態、測試與授權」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 4 個核對點是「生產狀態、測試與授權」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 5 個核對點是「生產狀態、測試與授權」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 6 個核對點是「生產狀態、測試與授權」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 7 個核對點是「生產狀態、測試與授權」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
turso 的第 8 個核對點是「生產狀態、測試與授權」:README 將它放在 tursodatabase/turso 的具體脈絡中,讀者可沿著該節提到的檔案、元件或命令觀察實際行為;素材沒有說明的結果,本文不替它補上結論。
編輯結論
適合需要 turso 所描述能力、並能依 README 指定環境操作的人;不適合把專案宣稱直接當成自身環境保證的讀者。採用前先執行 tursodatabase/turso README 的入口命令,核對輸出、版本與實際依賴,再決定是否納入工作流程。
社群筆記