Website • Documentation • Discord • Examples
TuringDB is a high-performance in-memory column-oriented graph database engine designed for analytical and read-intensive workloads. Built from scratch in C++.
TuringDB delivers millisecond query latency on graphs with millions of nodes and edges. TuringDB is commonly 200x faster than Neo4j on deep multihop queries.
TuringDB was created to solve real-world performance challenges in critical industries where every millisecond matters:
- Bioinformatics & Life Sciences - Analyse complex deep multi-scale biological networks
- AI & Machine Learning - Power GraphRAG, knowledge graphs, and agentic AI systems
- Real-time Analytics - Build dashboards and simulations with instant query responses
- Healthcare & Pharma - Handle sensitive data with GDPR compliance and auditability
- Financial Services - Audit trails with git-like versioning for regulatory compliance
- 0.1-50ms query latency for analytical queries on 10M+ node graphs
- Column-oriented architecture with streaming query processing: nodes and edges are processed in chunks for efficiency
- In-memory graph storage with efficient memory representations
- Reads and writes never compete - analytical queries run without locking from writes
- Massive parallelism for dashboards, AI pipelines, and batch processing
- Each transaction executes on its own immutable snapshot. Guarantees Snapshot Isolation.
- Create and commit graph versions, maintain branches, merge changes, and time travel through history
- Perfect for reproducibility, auditability, and regulatory compliance
- Immutable snapshots ensure data integrity
- OpenCypher query language
- Python SDK with comprehensive API
TuringDB delivers exceptional performance on standard graph workloads 200X faster than Neo4j:
Specs: Machine with AMD EPYC 7232P 8-Core CPU and RAM 64G
MATCH (n{displayName: ‘APOE-4’}) RETURN count(n)
Query for 1-hop: MATCH (n{displayName: ‘APOE-4’})-->(m) RETURN count(n)
| Query Depth | Neo4j Mean | TuringDB Mean | Speedup |
|---|---|---|---|
| 1-hop | 1390 ms | 12 ms | 115× |
| 2-hop | 1420 ms | 11 ms | 129× |
| 4-hop | 1568 ms | 14 ms | 112× |
| 7-hop | 51,264 ms | 172 ms | 298× |
| 8-hop | 98,183 ms | 476 ms | 206× |
Details: MATCH query returning node IDs from a set of 15 seed nodes with an increasing number of hops through outgoing edges.
See our detailed benchmarks for more performance data.
Install via pip
- Linux: tested primarily on Ubuntu Jammy 22.04 LTS
- MacOS
For Build
TuringDB requires:
For Linux:
- Linux Ubuntu Jammy 22.04 LTS or later
- GCC version >=11
- CMake 3.10 or higher
For MacOS:
- LLVM Clang version >=15
- CMake 3.10 or higher
Using pip:
pip install turingdbor using the uv package manager (you will need to create a project first):
uv add turingdbAnd then it should be in your $PATH
or using the docker image:
If you can it’s better to use TuringDB within a uv project or with pip install to avoid loss in latency performance related to the docker deployment.
docker run -it turingdbai/turingdb:nightly turingdbRun the turingdb binary to use turingdb in interactive mode in the current terminal:
turingdbTo run turingdb in the background as a daemon:
turingdb -demonThe turingdb REST API is running in both interactive and demon mode on http://localhost:6666 by default.
TuringDB WebGL accelerated graph visualizer allows you to visualise large graphs in the browser: TuringDB Visualizer
- Choose on the top right the graph
- Search & select a node(s) of interest (magnifying glass button on the left)
- Then go to visualiser (network logo) and you can start exploring paths, expanding neighbours, inspect nodes (parameters, hyperlinks, and texts stored on the nodes)
-
Build on Ubuntu Jammy or later
-
Clone with submodules
git clone --recursive https://github.com/turing-db/turingdb.git
./pull.sh- Install dependencies (run only once)
./dependencies.shThis script will automatically build or install:
- Curl and OpenSSL
- GNU Bison and Flex
- Boost
- OpenBLAS
- AWS SDK for C++
- Faiss vector search library
- Build TuringDB:
mkdir -p build && cd build
cmake ..
make -j8
make install- Setup environment:
source setup.shThis adds turingdb binaries to the $PATH of the current shell.
// Create nodes
CREATE (alice:Person {name: "Alice", age: 30})
CREATE (bob:Person {name: "Bob", age: 25})
CREATE (computers:Interest {name: "Computers", hasPhD: true})
// Create relationships
MATCH (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
CREATE (a)-[:KNOWS {since: 2020}]->(b)
MATCH (a:Person {name: "Alice"}), (i:Interest {name: "Computers"})
CREATE (a)-[:INTERESTED_IN]->(i)
// Query the graph
MATCH (a:Person)-->(b)
WHERE a.age > 25
RETURN a.name, b.name
from turingdb import TuringDB
# Connect to TuringDB
db = TuringDB(host="localhost", port=XXX)
# Execute query
result = db.query("""
MATCH (p:Person)-[:INTERESTED_IN]->(i:Interest)
RETURN p.name, i.name
""")
for record in result:
print(f"{record['p.name']} is interested in {record['i.name']}")A collection of notebooks demonstrating how to use TuringDB for real-world analytical examples.
Each notebook focuses on a different domain and use case, from fraud detection to biological graph exploration, leveraging the performance and versioning capabilities of TuringDB.
github.com/turing-db/turingdb-examples
Paysim Financial Fraud Detection
Crypto Orbitaal Fraud Detection
Supply Chain - ETO Chip Explorer
- Columnar Storage: Nodes and edges stored in columns for efficiency and streaming query processing. Brings modern database research ideas to graph databases.
- DataParts: Immutable data partitions that enable git-like versioning and zero locking between reads and writes
- Snapshot Isolation: Each query sees a consistent snapshot view of the graph
- Zero-locking: Read optimised architecture for high analytic workloads performance
Learn more in our documentation.
- Getting Started Guide - Your first steps with TuringDB
- Query Language Reference - Complete query syntax guide
- Python SDK Documentation - Integrate TuringDB with Python
- Concepts & Architecture - Deep dive into TuringDB internals
- Tutorials & Examples - Learn by doing
- Discord Community - Chat with users and developers
- Issue Tracker - Report bugs or request features
- Email Support - Contact the TuringDB team
- LinkedIn - Follow us for updates
We welcome contributions! Contact our team to contribute to TuringDB: team@turingdb.ai
TuringDB Community Edition is licensed under the BSL License
See LICENSE for more details.
- 🌐 Website: turingdb.ai
- 📧 Email: team@turingdb.ai
- 💼 LinkedIn: TuringDB
Star us on GitHub - it helps the project grow!


