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 加速的向量数据库功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目