← Back to archive

Repo of the Day

FalkorDB/FalkorDB

Published: Sep 2, 2025

Open repository ↗

A super fast Graph Database uses GraphBLAS under the hood for its sparse adjacency matrix graph representation. Our goal is to provide the best Knowledge Graph for LLM (GraphRAG).

Summary

FalkorDB is a property graph database built in Rust as a Redis module. It stores graphs as sparse matrices using GraphBLAS and executes queries via linear algebra, supporting OpenCypher with proprietary extensions. The project targets low-latency knowledge-graph workloads, particularly GraphRAG pipelines for LLM applications, and is licensed under the Server Side Public License v1 (SSPLv1).

What it is useful for

  • Building knowledge graphs that an LLM application can query for retrieval-augmented generation; the README explicitly positions FalkorDB as a graph backend for GraphRAG.
  • Scenarios the README calls out: agent memory, cloud security, and fraud detection — domains where relationships between entities matter and Redis is already part of the stack.
  • Workloads where sparse-matrix storage fits the graph's shape, since FalkorDB represents the adjacency matrix rather than storing edges row-by-row.
  • Teams that already operate Redis and want graph queries without standing up a separate server.

How engineers can use it

The README documents two main entry points.

  1. Docker for a quick local instance:

    docker run -p 6379:6379 -p 3000:3000 -it --rm -v ./data:/var/lib/falkordb/data falkordb/falkordb
    

    Then open http://localhost:3000 in a browser for the included UI.

  2. Interact over the Redis protocol. With redis-cli:

    127.0.0.1:6379> GRAPH.QUERY social "CREATE (:person {name: 'roi', age: 33})"
    

    Or with a client library. The README's Python example connects with FalkorDB(host='localhost', port=6379), selects a named graph, and runs g.query(...) with OpenCypher. Official clients exist for Java, Python, Node.js, Rust, Go, and C#; community clients cover Ruby, PHP, Elixir, Julia, and more. Any Redis client that can send raw commands also works, though the README notes the exact method varies by client.

For building from source, the README recommends a dev container. Manual setup needs clang with OpenMP (Homebrew llvm plus libomp on macOS, clang-23 and libomp-23-dev on Linux), then git submodule update --init --recursive to fetch GraphBLAS, LAGraph, and RediSearch, followed by cargo build. Tests split across cargo test -p graph for units and pytest for end-to-end, MVCC, concurrency, and OpenCypher TCK suites.

Documented limitations: the license is SSPLv1 rather than a typical permissive open-source license — review the LICENSE file before adoption. The README also warns that macOS's system clang has no OpenMP, so Homebrew's llvm must be used or GraphBLAS will silently build single-threaded.