latticedb vs minigraf
Embedded single-file graph database in Zig: graph traversal, HNSW vector search and BM25 full-text in one query language, plus a durable event log — built for Graph RAG and local agent memory. — versus — Embedded single-file graph database in Rust with Datalog queries and bi-temporal time travel — 'SQLite for connected data with history' — running native, WASM, mobile and in the browser.
Both are embedded single-file graph DBs for agents; latticedb adds HNSW vectors and BM25, minigraf trades that for Datalog and bi-temporal history.
| latticedb | minigraf | |
|---|---|---|
| Stars | 745 | 225 |
| Forks | 34 | 14 |
| Language | Zig | Rust |
| License | MIT | Apache-2.0 |
| Last activity | 10 days ago | yesterday |
| Topics | knowledge-graphs, rag, local | knowledge-graphs, memory, storage |
| Curated connections | 8 | 3 |
latticedb — the curator's take
SQLite's shape applied to the three retrieval modes agents actually need. One file, no server, one query layer where a Cypher-style MATCH can filter on vector distance and a full-text match in the same statement, and one WAL that graph writes and named event streams share — so your changefeed is transactional with the graph. Quoted 0.13µs node lookups and 0.83ms vector search at 1M vectors, with CLI, Python, TypeScript, Java and Go bindings. Reach for it when relationships are the point and you were about to bolt a vector DB onto a graph DB. Do not reach for it for multi-writer or multi-machine work: it is explicitly single-writer, one owning process, one machine. Also young — Zig, 567 stars, bundled native libs per platform, and the built-in `hash_embed` helper is a deterministic placeholder, not an embedding model.
minigraf — the curator's take
Use it when an agent or app needs local graph memory with full history (what was true, and when we learned it) in one file, no server. Skip it for vector/semantic recall (no embeddings), large multi-user workloads, or if Datalog is a non-starter; on v2.x, note the multi-valued-attribute bug and write each value in its own transact.