DaruDB
函式庫
把應用程式資料放進一個本機檔案的嵌入式資料庫,由一個以 Rust 撰寫的引擎與其上的 Node.js 繫結組成。目前仍在早期開發階段,尚未發布任何套件,現在需要從原始碼建置。
關於這個專案
DaruDB 是在應用程式內部而不是旁邊執行的資料庫。沒有需要安裝或啟動的伺服器:程式開啟一個檔案,在裡面讀寫物件,然後關閉。它適合桌面應用程式、行動應用程式與命令列工具用來存放自己的資料。引擎只用 Rust 寫一次,其他語言透過不增加任何行為的薄繫結使用同一個引擎,所以用 Node.js 寫入的檔案,從 Rust 讀出來也完全一樣。
資料以集合的結構描述來宣告,再用程式組成或以文字撰寫的查詢讀回,支援索引、物件之間的連結,以及從一個結構描述版本到下一個版本的遷移。查詢結果是一般物件,而不是綁在已開啟資料庫上的控制代碼。檔案可以用金鑰或密碼逐頁加密與驗證,多個行程只靠作業系統的檔案鎖共用同一個檔案。已提交的頁面不會被原地覆寫,所以行程中途當掉時,最後一次提交的狀態仍然完好。完整性檢查、線上備份、壓縮整理與損毀檔案的搶救工具也隨函式庫提供。
DaruDB 仍在早期開發階段。Rust crate 與 Node.js 套件需要從原始碼建置而不是直接安裝,在第一個版本發布之前,檔案格式可能在沒有遷移路徑的情況下改變,Dart 套件也還在規劃中。速度、耐久性與平台涵蓋是設計所追求的目標,等到支撐各項目標的效能測試與測試套件進入儲存庫,才會作為結論提出。文件網站以英文與韓文介紹指南、引擎與 API。
功能
文件網站
TypeScript 型別
多語言支援
經測試驗證
