TuringDB 3.1 is out: query parameters, the binary protocol over HTTP/1.1 by default, a WebAssembly-based TypeScript client on npm, allReduce, COLLECT and other subqueries, and points with haversine distances. Read the release notes.
What is TuringDB?
TuringDB is an in-memory column oriented graph database engine built in C++ for analytical, AI-driven, and read-intensive workloads. With version-controlled storage and zero-locking execution, it gives you blazing-fast queries, snapshot isolation, and seamless integration with modern AI pipelines.
The platform has three main components: the TuringDB engine (a columnar, version-controlled graph store), the Python and JavaScript SDKs for building applications and pipelines, and a built-in visualizer for exploring graphs in the browser.
Guides




Quickstart
You need a terminal, and optionally Python with uv or pip if you want to use the SDK.
Install and launch TuringDB using whichever method fits your setup:
# Quick install into your home directory
curl https://install.turingdb.ai | bash
# Launch the server (default port 6666)
turingdb# Add the TuringDB SDK to a uv project
uv add turingdb
# Launch the server
turingdb# Install the TuringDB SDK with pip
pip install turingdb
# Launch the server
turingdb# Install the TuringDB JavaScript SDK
npm install turingdb
# Launch the server on a port Node.js accepts
turingdb -p 6686from turingdb import TuringDB
# Connect to a running TuringDB server
client = TuringDB(host="localhost", port=6666)
# Create a graph and a versioned change
client.create_graph("mygraph")
client.set_graph("mygraph")
change = client.new_change()
client.checkout(change=change)
# Write, commit, and submit
client.query(
"CREATE (n:Person {name: 'Jane'})"
"-[e:KNOWS]->(m:Person {name: 'John'})"
)
client.query("COMMIT")
client.query("CHANGE SUBMIT")
# Back to main, query the graph
client.checkout()
client.query("MATCH (n) RETURN n")import { TuringClient } from "turingdb";
// Connect to a running TuringDB server (started with -p 6686)
const client = new TuringClient({
url: "http://localhost:6686/query",
graph: "mygraph",
});
// Query the graph, with a parameter
const [[names]] = await client.queryData(
`MATCH (n:Person)
WHERE n.name STARTS WITH $prefix
RETURN n.name`,
{ parameters: { prefix: "J" } },
);# Run TuringDB in a container
# (other install methods are preferred:
# Docker adds some performance loss)
docker run -it turingdbai/turingdb:nightly turingdbOnce the server is running, open the built-in visualizer with turingdb -ui and head to http://localhost:8080. For the full walkthrough, see the Get Started guide.
SDKs
TuringDB ships a Python SDK for creating graphs, managing changes, and running Cypher queries from your applications and notebooks, and a JavaScript SDK, the turingdb npm package, for Node.js and web applications in JavaScript or TypeScript. Both talk to the server over TuringDB’s binary protocol. Using Claude Code? Install the TuringDB skill and let Claude drive the database for you.

