返回排行榜

FalkorDB/FalkorDB

Cfalkordb.com

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).

graph-databaseknowledge-graphdatabase-as-a-servicecloud-databasedatabasedeveloper-toolsdevtoolsrealtime-databasegraphrag
Star 增长趋势
Star
4.8k
Forks
407
周增长
Issues
608
2k4k
2023年7月2024年7月2025年7月2026年7月
README
FalkorDB Logo Square B

FalkorDB

Ultra-fast, Multi-tenant Graph Database

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

FalkorDB%2FFalkorDB | Trendshift

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.

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! Please see our Contributing Guide for more details.

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

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

START BUILDING

Compiling

Make sure to complete these requirements:

1️⃣ The FalkorDB repository: git clone --recurse-submodules -j8 https://github.com/FalkorDB/FalkorDB.git

  • Ubuntu, install: apt-get install build-essential cmake m4 automake peg libtool autoconf python3 python3-pip
  • Alpine, install: apk add build-base cmake m4 automake libtool autoconf python3 py3-pip peg git libgomp openssl-dev
  • OS X, verify that homebrew is installed and run: brew install cmake m4 automake peg libtool autoconf.
    • The version of Clang that ships with the OS X toolchain does not support OpenMP, which is a requirement for FalkorDB. One way to resolve this is to run brew install gcc g++ and follow the on-screen instructions to update the symbolic links. Note that this is a system-wide change - setting the environment variables for CC and CXX will work if that is not an option.

2️⃣ Build by running make in the project's directory.

Congratulations! You can find the compiled binary at bin/<arch>/src/falkordb.so.

Running tests

Start by installing the required Python packages by running pip install -r requirements.txt from the tests directory.

Note: If you've got redis-server in PATH, just invoke make test. Otherwise, invoke REDIS_SERVER=<redis-server-location> make test. For a more verbose output, run make test V=1.

Building in a docker

The FalkorDB build system runs within docker. For detailed instructions on building, please see here.

LOADING FALKORDB INTO REDIS

FalkorDB is hosted by Redis, so you'll first have to load it as a Module to a Redis server.

Note: Redis 7.4 is required for the latest FalkorDB version.

💡 We recommend having Redis load FalkorDB during startup by adding the following to your redis.conf file:

loadmodule /path/to/module/src/falkordb.so

In the line above, replace /path/to/module/src/falkordb.so with the actual path to FalkorDB's library. If Redis is running as a service, you must ensure that the redis user (default) has the necessary file/folder permissions to access falkordb.so.

Alternatively, you can have Redis load FalkorDB using the following command line argument syntax:

~/$ redis-server --loadmodule /path/to/module/src/falkordb.so

Lastly, you can also use the MODULE LOAD command. Note, however, that MODULE LOAD is a dangerous command and may be blocked/deprecated in the future due to security considerations.

Once you've successfully loaded FalkorDB your Redis log should see lines similar to:

...
30707:M 20 Jun 02:08:12.314 * Module 'graph' loaded from <redacted>/src/falkordb.so
...

If the server fails to launch with output similar to:

# Module /usr/lib/redis/modules/falkordb.so failed to load: libgomp.so.1: cannot open shared object file: No such file or directory
# Can't load module from /usr/lib/redis/modules/falkordb.so: server aborting

The system is missing the run-time dependency OpenMP. This can be installed on Ubuntu with apt-get install libgomp1, on RHEL/CentOS with yum install libgomp, and on OSX with brew install libomp.

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

Project Language License Author Stars Package Comment
nredisstack .NET MIT Redis nredisstack-stars nuget
redisgraph-rb Ruby BSD Redis redisgraph-rb-stars GitHub
redgraph Ruby MIT pzac redgraph-stars GitHub
redisgraph-go Go BSD Redis redisgraph-go-stars GitHub
rueidis Go Apache 2.0 Rueian rueidis-stars GitHub
ioredisgraph JavaScript ISC Jonah ioredisgraph-stars GitHub
@hydre/rgraph JavaScript MIT Sceat rgraph-stars GitHub
php-redis-graph PHP MIT KJDev php-redis-graph-stars GitHub
redisgraph_php PHP MIT jpbourbon redisgraph_php-stars GitHub
redisgraph-ex Elixir MIT crflynn redisgraph-ex-stars GitHub
redisgraph-rs Rust MIT malte-v redisgraph-rs-stars GitHub
redis_graph Rust BSD tompro redis_graph-stars GitHub
rustis Rust MIT Dahomey Technologies rustis-stars Crate Documentation
NRedisGraph C# BSD tombatron NRedisGraph-stars GitHub
RedisGraph.jl Julia MIT xyxel RedisGraph.jl-stars GitHub

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

相关仓库
surrealdb/surrealdb

A scalable, distributed, collaborative, document-graph database, for the realtime web

Rustcrates.ioOtherdatabasedistributed
surrealdb.com
32.7k1.3k
topoteretes/cognee

Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.

PythonPyPIApache License 2.0aicognitive-architecture
cognee.ai
29k2.8k
neo4j/neo4j

Graphs for Everyone

JavaMavenGNU General Public License v3.0cyphergraphdb
neo4j.com
16.9k2.7k
cayleygraph/cayley

An open-source graph database

GoGo ModulesApache License 2.0graphgraph-database
cayley.io
15.1k1.2k
arangodb/arangodb

🥑 ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.

C++Othermulti-modelgraph-database
arangodb.com
14.2k884
vesoft-inc/nebula

A distributed, fast open-source graph database featuring horizontal scalability and high availability

C++Apache License 2.0graph-databasedistributed
nebula-graph.io
12.3k1.3k
JanusGraph/janusgraph

JanusGraph: an open-source, distributed graph database

JavaMavenOthergraph-databasetinkerpop
janusgraph.org
5.8k1.2k
HelixDB/helix-db

HelixDB is an OLTP graph-vector database built in Rust on Object Storage.

Rustcrates.ioApache License 2.0aicli
helix-db.com
5.7k312
orientechnologies/orientdb

OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries.

JavaMavenApache License 2.0orientdbgraph-database
orientdb.dev
5k871
apache/age

Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL.

CApache License 2.0postgresqlgraph-database
age.apache.org
4.7k513
memgraph/memgraph

High-performance open-source in-memory graph database for GraphRAG, AI memory, agentic AI, and real-time graph analytics. Cypher-compatible, built in C++.

C++Othergraph-algorithmsgraph-database
memgraph.com
4.3k247
cozodb/cozo

A transactional, relational-graph-vector database that uses Datalog for query. The hippocampus for AI!

Rustcrates.ioMozilla Public License 2.0databasegraph
cozodb.org
4.1k160