datalevin/datalevin

A simple, fast and versatile Datalog database

它解决了什么问题

Datalevin 是一个耐用的 Datalog 数据库,旨在成为 SQL 和图形数据库的简单、快速且多功能的替代方案。它通过提供更具声明性与可组合性的查询语言来解决 SQL 的复杂性,同时避免了其他 Datalog 实现中复杂的时间特性,以维持熟悉的 ACID 兼容行为,即删除的数据将永久消失。

运作原理

Datalevin 使用基于成本的查询优化器,以达到与 PostgreSQL 和 SQLite 等 RDBMS 相当的性能。它建立在 LMDB (Lightning Memory-Mapped Database) 的分支之上,以确保高读取性能与稳健的 ACID 事务,并支持写入密集型工作负载的预写式记录 (WAL) 与异步事务。它可以作为嵌入式库 (类似 SQLite) 运作,或以网络客户端/服务器模式运作,并具备基于 Raft 的高可用性与角色访问控制 (RBAC)。

目标客群

它专为偏好 Datalog 的声明式特性与隐式连接 (implicit joins) 胜过 SQL 的开发者,以及需要处理关系型、图形、文档和键值数据模型的开发者所设计。对于 Clojure 程序而言,由于其原生的 EDN 数据处理能力,它特别实用。

特色亮点

  • 多模型能力:支持 Datalog 查询、文档存储 (JSON, EDN, Markdown) 并具备自动路径索引、通过 SIMD 加速的向量数据库功能,以及全文检索。
  • AI 原生功能:包含内置的本地 MCP 服务器,并通过集成的 llama.cpp 支持数据库内嵌入 (embedding) 与文本生成。
  • 高性能:在关系型 (JOB)、图形 (LDBC SNB)、文档 (idoc) 与逻辑 (OpenRuleBench) 工作负载的基准测试中,性能优于多种替代方案。
  • 广泛的语言支持:提供 Java, Python, Node.js 与 Clojure 的库,并与 babashka pods 兼容。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目