What you get.
One small database for AI and graph workloads: Cypher, vector search, analytics and change streams, on your own servers.
The Cypher you know
Send parameterised Cypher from open source drivers in seven languages, or the official Neo4j drivers. The compatibility guide lists exactly what is supported.
DriversVector search meets the graph
Vector, full-text and spatial indexes sit beside centrality, communities, path finding and FastRP embeddings, so one Cypher query can find a starting point and follow its context.
Vector indexesStreams and replicas
Opt-in change streams, subscriptions with label and property triggers, and read-only replicas on the same instance or another server, milliseconds behind with group durability.
Change streamsYour first graph.
Two nodes and a relationship, created and queried in Cypher. Connect from Python or JavaScript with a Bolt driver.
- Cypher reads and writes
- Open source drivers for seven languages
- Explorer to see the result
// Create two nodes and a relationship between them
CREATE (you:Developer {name: 'You'}),
(idea:Idea {name: 'Recipe finder'}),
(you)-[:BUILDS]->(idea);
MATCH (you:Developer)-[:BUILDS]->(idea)
RETURN you.name, idea.name;import os
from neo4j import GraphDatabase
# For the official Neo4j driver, start the server with GDB_NEO4J_AGENT=true.
# Use bolt+s:// once the server has a TLS certificate.
with GraphDatabase.driver(
'bolt://127.0.0.1:7687',
auth=('gdb', os.environ['GDB_INITIAL_PASSWORD'])
) as driver:
with driver.session() as session:
result = session.run('RETURN 1 + 1 AS two')
print(result.single()['two'])const neo4j = require('neo4j-driver');
const driver = neo4j.driver(
'bolt://127.0.0.1:7687',
neo4j.auth.basic('gdb', process.env.GDB_INITIAL_PASSWORD)
);
const session = driver.session();
try {
const result = await session.run('RETURN 1 + 1 AS two');
console.log(result.records[0].get('two').toString());
} finally {
await session.close();
await driver.close();
}Start small. Ship the whole graph.
Four steps from docker compose up to a secured graph with a live read replica. Each one is a short guide.
See it work.
All demos
Change streams, subscriptions and replicas
Watch commits flow from a shop database onto its change stream, out to a subscriber that acknowledges them and into a read-only replica twin, across four real use cases.
Open the demo
From graph to space: similarity and recommendations
See FastRP turn a graph of people, drinks, events and places into a space where distance means similarity, then use it to find look-alikes, place a brand-new product and build a price ladder.
Open the demo
Spatial neighbourhoods: graph meets map
Neighbourhood polygons, places as points and a graph of people above them: test containment, search by distance with the grid index, overlay shapes, and combine friends with distance in one query.
Open the demo
The agent loop: a coding agent on a graph
Watch iKode turn a codebase into a Galactus DB graph, embed it with small open models, search it, decide what matters and follow the edges, then hand a large model a short brief instead of the repository, across branches and quality gates.
Open the demo
Hourglass: exact shortest paths from both ends
Watch Dijkstra, A*, bidirectional search and Hourglass find the same route on the same map, see how Hourglass tilts the map and drops the sorting, race all four at one operation per tick, then run it in Galactus DB on real UK roads.
Open the demo
Native Scheduler: from home visits to dance competitions
Watch six scheduling problems solved: visits with travel and double-ups, dancers who need fifteen minutes to change, operations that need three people and a room at once, exams by seats, paint lines with changeovers, and a re-plan when someone calls in sick.
Open the demo
Tables and SQL: rows on the graph
See orders, readings and invoice lines kept as tables on their nodes: walk the graph and read rows in one query, let rows decide a match, average time series by key range, search every table through a global index, and change every table at once.
Open the demoBring your graph with you.
- Dumps import directly. Neo4j 4.x and 5.x
.dumpfiles load withCALL gdb.neo4j.import(...). - Your drivers connect. The official Neo4j drivers work over Bolt 4.4 and 5; the Python one needs
GDB_NEO4J_AGENT=true. - Your Cypher runs. The compatibility guide lists exactly what is supported.
Yours to run.
Enterprise ready- Self-hostedOn your Linux servers, AMD64 or ARM64. Your data stays with you.
- TLS built inEncrypted Bolt connections from the server itself, no proxy needed.
- Roles and permissionsUsers, roles and privileges decide who reads and writes what.
- Durable by designChecksummed commit logs, your choice of durability, and recovery after a crash.
Large graphs on the servers you already have.
Galactus DB is ideal for heavy GraphRAG, KAG, AI and algorithmic workloads. It is small because it wastes nothing, and that efficiency is what lets it carry large graphs. It has true index-free adjacency: every node points straight at its relationships, so a traversal follows the graph rather than searching an index, and each hop costs the same however large the graph grows. The default Paged engine opens a database straight from disk and keeps only the pages in use in memory, inside one budget you set, so a graph can grow far past the server's RAM, to terabytes on disk.
Run the same Cypher workload side by side and Galactus DB carries larger graphs than Memgraph and does the same work in a fraction of the memory Neo4j needs. Graph algorithms, vector, full-text and spatial indexes, SQL tables on your nodes, change streams, a scheduler, replicas, users and roles, TLS and Prometheus metrics are all part of the database, with no plugins to add.
Try it with your own data.
Community is free for any use and needs no account or licence key. One Compose file starts the database and Explorer.