FalkorDB is a free, open source databases project written in Rust and released under a custom open-source licence. It has 10,505 GitHub stars, 601 forks and 724 open issues, and was last pushed 23 hours ago. On this registry it ranks #76 of 206 tracked projects in Databases, with 5 head-to-head comparisons available. It gained 4,150 stars over the last 30 tracked days.

What is FalkorDB?

FalkorDB is a Rust-based, Redis-compatible graph database that stores graphs as sparse adjacency matrices and queries them with linear algebra, built for GraphRAG pipelines, agent memory, cloud security and fraud-detection workloads.

What it is

FalkorDB is a multi-tenant property graph database that uses GraphBLAS under the hood to represent the graph's adjacency matrix as a sparse matrix, then executes queries with linear algebra rather than conventional pointer-chasing traversal. The README states it is the first queryable property graph database to take this approach. It complies with the Property Graph Model, so nodes and relationships carry attributes, and it supports OpenCypher as its query language, including proprietary extensions for advanced querying. It is written in Rust, carries a NOASSERTION licence, has roughly 6,100 stars and 460 forks, and is documented at falkordb.com.

The practical problem it addresses is latency in knowledge-graph retrieval for Large Language Models. The project's stated goal is a high-performance knowledge graph tailored for LLMs, with exceptionally low latency for fast information delivery, which is what GraphRAG and agent-memory patterns depend on. It lives in the Redis ecosystem rather than beside it: FalkorDB accepts commands from any Redis client, so redis-cli and existing Redis tooling reach it directly on port 6379, and the browser interface runs on port 3000. For a team already running Redis, this replaces standing up a separate graph service with its own driver and wire protocol; graph work is issued through the same client the team already uses.

Key capabilities

  • Sparse matrix representation of the adjacency matrix, via GraphBLAS, to optimise storage and performance.
  • Linear algebra query execution, which the README presents as the mechanism behind its computational efficiency.
  • Property Graph Model compliance, so nodes and relationships carry named attributes.
  • OpenCypher support, plus proprietary extensions for advanced querying.
  • Redis protocol compatibility: GRAPH.QUERY runs from redis-cli, for example GRAPH.QUERY social "CREATE (:person {name: 'roi', age: 33})".
  • Multi-tenant graph selection through the client API, such as db.select_graph('MotoGP') or db.select_graph('social').
  • Official client libraries across several languages, including the falkordb Python package, plus a bundled browser UI.

Who uses it and how

  • Teams building GraphRAG retrieval layers over LLMs, where the knowledge graph must answer with low latency.
  • Agent-memory implementations that persist and traverse relationship data between model calls.
  • Cloud security and fraud-detection workloads, which the README names as target uses and which depend on connected-entity analysis.
  • Multi-tenant AI applications and database-as-a-service offerings, reflected in the cloud-database, database-as-a-service and realtime-database topics.
  • Existing Redis deployments that want queryable graph data reachable from redis-cli and their current clients, without adding a second database protocol.

Getting started

Launch an instance with Docker: 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, or connect with a supported client library such as Python's falkordb package.

How it compares

The facts do not name any paid products that FalkorDB replaces, and they name no equivalent graph database to measure it against. It stands alone in this registry on the evidence provided, so no licence, hosting or cost comparison can be drawn from the material supplied.

When to use it — and when not to

A self-hoster must operate the FalkorDB server itself, which in the documented path means running the falkordb/falkordb Docker image and persisting data to a mounted volume at /var/lib/falkordb/data, along with whatever hosting, backup and monitoring surrounds that container. The licence is recorded as NOASSERTION, so the actual terms are not declared by the metadata; anyone with strict licence-review requirements should resolve that before adopting it. It is also worth noting the repository carries 724 open issues, and the README does not document clustering, backup or upgrade procedures, so teams needing certified high-availability operations or relational SQL semantics should look elsewhere.

project readme (upstream, from github) — read inline
FalkorDB Logo Square B

FalkorDB

Ultra-fast, Multi-tenant Graph Database

Powering Generative AI, Agent Memory, Cloud Security, and Fraud Detection

FalkorDB%2FFalkorDB | Trendshift Try Free
Discord Dockerhub codecov Rust license

FalkorDB GitHub Repo - Video - 640x365

UNIQUE FEATURES

Our goal is to build a high-performance Knowledge Graph tailored for Large Language Models (LLMs), prioritizing exceptionally low latency to ensure fast and efficient information delivery through our Graph Database.

🆕 FalkorDB is the first queryable Property Graph database to leverage sparse matrices for representing the adjacency matrix in graphs and linear algebra for querying.

Key Features

  • Sparse Matrix Representation: Utilizes sparse matrices to represent adjacency matrices, optimizing storage and performance.

  • Linear Algebra Querying: Employs linear algebra for query execution, enhancing computational efficiency.

  • Property Graph Model Compliance: Supports nodes and relationships with attributes, adhering to the Property Graph Model.

  • OpenCypher Support: Compatible with OpenCypher query language, including proprietary extensions for advanced querying capabilities.

Explore FalkorDB in action by visiting the Demos.

GET STARTED

Step 1

To quickly try out FalkorDB, launch an instance using docker:

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

Step 2

Then, open your browser and navigate to http://localhost:3000.

You can also interact with FalkorDB using any of the supported Client Libraries

MotoGP League Example

In this example, we'll use the FalkorDB Python client to create a small graph representing a subset of motorcycle riders and teams participating in the MotoGP league. After creating the graph, we'll query the data to explore its structure and relationships.

from falkordb import FalkorDB

# Connect to FalkorDB
db = FalkorDB(host='localhost', port=6379)

# Create the 'MotoGP' graph
g = db.select_graph('MotoGP')
g.query("""CREATE (:Rider {name:'Valentino Rossi'})-[:rides]->(:Team {name:'Yamaha'}),
                  (:Rider {name:'Dani Pedrosa'})-[:rides]->(:Team {name:'Honda'}),
                  (:Rider {name:'Andrea Dovizioso'})-[:rides]->(:Team {name:'Ducati'})""")

# Query which riders represents Yamaha?
res = g.query("""MATCH (r:Rider)-[:rides]->(t:Team)
                 WHERE t.name = 'Yamaha'
                 RETURN r.name""")

for row in res.result_set:
	print(row[0])

# Prints: "Valentino Rossi"

# Query how many riders represent team Ducati ?
res = g.query("""MATCH (r:Rider)-[:rides]->(t:Team {name:'Ducati'})
                 RETURN count(r)""")

print(res.result_set[0][0])
# Prints: 1

USING FALKORDB

You can call FalkorDB's commands from any Redis client. Here are several methods:

With redis-cli

$ redis-cli
127.0.0.1:6379> GRAPH.QUERY social "CREATE (:person {name: 'roi', age: 33, gender: 'male', status: 'married'})"

With any other client

You can interact with FalkorDB using your client's ability to send raw Redis commands.

Note: Depending on your client of choice, the exact method for doing that may vary.

Example: Using FalkorDB with a Python client

This code snippet shows how to use FalkorDB with from Python using falkordb-py:

from falkordb import FalkorDB

# Connect to FalkorDB
db = FalkorDB(host='localhost', port=6379)

# Select the social graph
g = db.select_graph('social')

reply = g.query("CREATE (:person {name:'roi', age:33, gender:'male', status:'married'})")

CLIENT LIBRARIES

Note: Some languages have client libraries that provide support for FalkorDB's commands:

Official Clients

Project Language License Author Stars Package Comment
jfalkordb Java BSD FalkorDB jfalkordb-stars Maven
falkordb-py Python MIT FalkorDB falkordb-py-stars pypi
falkordb-ts Node.JS MIT FalkorDB falkordb-ts-stars npm
falkordb-rs Rust MIT FalkorDB falkordb-rs-stars Crate
falkordb-go Go BSD FalkorDB falkordb-go-stars GitHub
NFalkorDB C# Apache-2.0 FalkorDB nfalkordb-stars nuget

Additional Clients

DOCUMENTATION

Official Docs | Clients | Commands | 📊 Latest Performance Benchmarks

Community and Support

  • Discussions: Join our community discussions on GitHub Discussions to ask questions, share ideas, and connect with other users.

  • Contributing: We welcome contributions! See the Developer Guide below to build FalkorDB from source and run the test suites.

  • License: This project is licensed under the Server Side Public License v1 (SSPLv1). See the LICENSE file for details.

Developer Guide

This repository is the Rust implementation of FalkorDB. It builds the falkordb Redis module (libfalkordb.{so,dylib}) from Rust, using GraphBLAS sparse matrices for graph storage and traversal.

Quick Start with Dev Container (Recommended)

The easiest way to get started is using the development container, which includes all dependencies pre-installed:

  1. Install Docker and VS Code
  2. Install the Dev Containers extension
  3. Open this project in VS Code
  4. Click "Reopen in Container" when prompted (or press F1 and select "Dev Containers: Reopen in Container")
  5. Wait for the container to build (first time takes ~10-15 minutes)
  6. Start developing! All dependencies are ready to use.

See .devcontainer/README.md for more details.

Manual Setup

If you prefer to set up the environment manually:

Build
cargo build
Dependencies:

GraphBLAS, LAGraph, and RediSearch must be built and installed before building this project.

Toolchain prerequisites
Host Compiler OpenMP runtime
macOS brew install llvm (provides clang with OpenMP support) brew install libomp
Linux clang-22 (e.g. from apt.llvm.org) apt install libomp-22-dev

Local builds use whatever OpenMP package is on the system — build/libomp.sh is not required for local development. It is only invoked by the Docker toolchain image (build/Dockerfile) to produce /opt/libomp/lib/libomp.a, which lets the published libfalkordb.{so,dylib} embed libomp statically and have no libomp.so.5 / libgomp.so.1 / libomp.dylib runtime dependency. A locally-built artifact will dynamically link the system libomp instead — fine for dev, but CI/Docker is the source of truth for the self-contained image.

If you do want a self-contained local artifact (e.g. to mirror the Docker build), run build/libomp.sh with a writable PREFIX and point graph/build.rs at it via LIBOMP_PREFIX:

CC=$(brew --prefix llvm)/bin/clang PREFIX=$HOME/libomp ./build/libomp.sh
LIBOMP_PREFIX=$HOME/libomp cargo build

The script auto-detects the libomp source release from ${CC:-clang} --version, so it stays ABI-matched to your compiler with no manual version arg. In Docker the same auto-detection runs against clang-${CLANG_MAJOR}, eliminating the prior drift risk between the apt-installed clang and a hand-pinned LLVMORG_VERSION.

Building GraphBLAS + LAGraph

GraphBLAS and LAGraph are built by a single script: GraphBLAS is installed system-wide, LAGraph is emitted under ./lagraph_lib.

On macOS, point the script at homebrew clang first:

export CC=$(brew --prefix llvm)/bin/clang
export CXX=$(brew --prefix llvm)/bin/clang++
./graphblas.sh

On Linux:

CC=clang-22 CXX=clang++-22 ./graphblas.sh
Building RediSearch

RediSearch lives at deps/RediSearch as a git submodule (same layout as the C engine on master). git owns that checkout — redisearch.sh only builds what is there, so populate it first:

git submodule update --init --recursive
./redisearch.sh

(git clone --recurse-submodules does the first step for you. The script exits with instructions if the submodule is empty.)

To work on RediSearch itself, edit deps/RediSearch in place and re-run ./redisearch.sh — it never fetches or resets, so local work is never clobbered. To land a RediSearch change, move the pin the ordinary way:

git -C deps/RediSearch checkout <sha>
git add deps/RediSearch

The gitlink is the only place the commit is recorded, so there is nothing else to keep in step.

  • pytest - create virtualenv and install tests/requirements.txt

The virtual environment should be activated before running tests.

python3 -m venv venv
source venv/bin/activate
pip install -r tests/requirements.txt

Testing

  • run unit tests with cargo test -p graph

  • run e2e and function tests with pytest tests/test_e2e.py tests/test_functions.py -vv

  • run MVCC and concurrency tests with pytest tests/test_mvcc.py tests/test_concurrency.py -vv

  • run flow tests with ./flow.sh

  • run tck tests with pytest tests/tck/test_tck.py -s

There is an option to run only part of the TCK tests and stop on the first fail

TCK_INCLUDE=tests/tck/features/expressions/list pytest tests/tck/test_tck.py -s

To run all passing TCK tests use:

TCK_DONE=tck_done.txt pytest tests/tck/test_tck.py -s

LICENSE

Licensed under the Server Side Public License v1 (SSPLv1). See LICENSE.

Support our work

⭐️ If you find this repository helpful, please consider giving it a star!

↗️ Graph, graph database, RAG, graphrag, Retrieval-Augmented Generation,Information Retrieval, Natural Language Processing, LLM, Embeddings, Semantic Search

Frequently asked questions

Is FalkorDB free to use?

FalkorDB is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does FalkorDB do?

Graph database built for GraphRAG and multi-tenant AI apps

What is FalkorDB written in?

FalkorDB is primarily written in Rust. Its source is publicly available at https://github.com/falkordb/falkordb, and it has 10,505 GitHub stars.