Deep dive into Turso, the "SQLite rewrite in Rust"
Hacker News
This article provides a deep dive into Turso, a database project that rewrites SQLite in Rust, exploring its architecture, performance, and potential benefits.
Hacker News
This article provides a deep dive into Turso, a database project that rewrites SQLite in Rust, exploring its architecture, performance, and potential benefits.
AI 生成摘要
本文深入探討了 Turso,一個使用 Rust 重寫 SQLite 的資料庫專案,分析其架構、效能與潛在優勢。
這篇文章深入探討了 Turso 資料庫及其核心組件 Limbo,這是一個試圖以 Rust 語言重新實作 SQLite 的專案。Turso 旨在解決 SQLite 在分散式環境、併發寫入以及雲端原生場景下的局限性,並透過 Rust 的記憶體安全特性與現代化架構,提供一個從嵌入式到網路化都能無縫擴展的資料庫解決方案。
Hacker News 社群對此專案的反應呈現兩極化。支持者認為,SQLite 雖然極其穩定,但其開發模式屬於「開源但不開放貢獻」,且核心測試套件(TH3)並非公開,這使得第三方開發者難以在不破壞穩定性的前提下進行大規模架構改進。Turso 選擇用 Rust 重寫,不僅是為了記憶體安全,更是為了建立一套完全開源且具備「確定性模擬測試」能力的架構,從而擺脫對 SQLite 私有測試套件的依賴。部分開發者指出,Turso 已經初步實現了 SQLite 難以企及的併發寫入功能,這對於需要將 SQLite 作為中央系統資料庫的場景具有極大吸引力。
然而,質疑聲浪同樣猛烈。許多資深工程師對「重寫即更好」的觀點表示擔憂,認為 SQLite 過去二十五年的穩定性是建立在無數邊緣案例的修復與極高覆蓋率的測試之上。即便 Rust 能解決記憶體安全問題,邏輯錯誤與效能退化依然是新專案必須面對的挑戰。更有評論者直言,Turso 作為一家受風險投資(VC)支持的新創公司,其商業動機與 SQLite 這種公共財性質的專案截然不同。歷史經驗顯示,VC 支持的開源專案往往在獲取足夠用戶後轉向封閉或更改授權(如 Elasticsearch 的前車之鑑),這種「收割公有領域價值」的商業模式讓部分社群成員感到反感。
此外,關於「相容性」的爭論也十分激烈。有觀點認為 Turso 只是掛著 SQLite 的招牌進行行銷,實際上在 SQL 方言與文件格式上仍有落差。但也有使用者緩頰,認為 Turso 仍處於 Beta 階段,且其目標是建立一個與 SQLite 檔案格式相容的分布式系統,這本身就極具技術難度。對於一般開發者而言,是否該為了併發寫入而放棄穩定性極高的 SQLite,轉向一個尚未經過時間考驗的新興資料庫,仍是一個巨大的問號。
在討論串中,開發者們提到了幾個值得關注的替代方案與資源。首先是 PGlite,這是一個將 Postgres 封裝成類似 SQLite 體驗的專案,雖然在效能上與 SQLite 仍有差距,但提供了更豐富的傳統資料庫功能。另外,有留言推薦收聽 CoRecursive 播客中關於 SQLite 創始人 Richard Hipp 的訪談,該集詳細解釋了 SQLite 測試套件的歷史背景與其獨特的商業模式。對於對 Rust 嵌入式資料庫感興趣的人,bcachefs 的作者也分享了將檔案系統核心轉化為通用資料庫的長遠構想。