datalevin/datalevin
A simple, fast and versatile Datalog database
解決的問題
Datalevin 提供一個簡單、快速且耐用的 Datalog 資料庫,可作為 SQL RDBMS 和圖形資料庫的替代方案。它透過提供更宣告式且可組合的查詢語言來避免 SQL 的複雜性,同時避免了某些其他 Datalog 實作中複雜的時序語意。它也解決了需要一個多功能儲存引擎的需求,該引擎可在單一系統中處理鍵值對、文件和向量嵌入。
工作原理
Datalevin 基於 LMDB(Lightning Memory-Mapped Database)的分支建構,以確保高讀取效能和 ACID 相容性。它使用成本導向的查詢最佳化器來改善複雜連接的執行計畫。對於 AI 功能,它整合 llama.cpp 以在資料庫內實現文字生成與嵌入,同時使用 SIMD 加速的函式庫進行向量索引與搜尋。它可以作為嵌入式函式庫(類似於 SQLite)部署,也可以作為基於 Raft 的高可用性網路客戶端/伺服器部署。
適用對象
適用於偏好 Datalog 宣告式特性的開發者,開發需要圖形查詢或歸納推理的應用程式者,以及需要具備內建向量搜尋與 LLM 集成的「AI 原生」資料庫的 AI 開發者。
主要亮點
- 多功能儲存:支援 Datalog 查詢、EDN 資料的鍵值儲存,以及自動路徑索引的文件儲存(JSON、EDN、Markdown)。
- AI 原生:內建本地 MCP 伺服器,支援透過
llama.cpp實現資料庫內的嵌入與文字生成。 - 高效率:採用創新成本導向的查詢最佳化器與非同步交易模式,專為寫入密集型工作負載優化。
- 廣泛整合:提供 Java、Python、Node.js 和 Clojure 的函式庫,並與 Babashka pods 相容。
- 高階搜尋:包含全文搜尋引擎與 SIMD 加速的向量資料庫功能。
相關
- 專案
- 專案
- 專案
- 專案
- 專案