Skip to content

Installation

Grafeo supports Python, Node.js/TypeScript, Go, C#, Dart, Rust and WebAssembly. Choose the installation method for the preferred language.

Python

uv is a fast Python package installer:

uv add grafeo

Using pip (alternative)

pip install grafeo  # If uv is not available

Verify Installation

import grafeo

# Print version
print(grafeo.__version__)

# Create a test database
db = grafeo.GrafeoDB()
print("Grafeo installed successfully!")

Platform Support

Platform Architecture Support
Linux x86_64 Full
Linux aarch64 Full
macOS x86_64 Full
macOS arm64 (M1/M2) Full
Windows x86_64 Full

Node.js / TypeScript

npm install @grafeo-db/js

Verify Installation

const { GrafeoDB } = require('@grafeo-db/js');

const db = await GrafeoDB.create();
console.log('Grafeo installed successfully!');
await db.close();

Go

go get github.com/GrafeoDB/grafeo/crates/bindings/go

Verify Installation

package main

import (
    "fmt"
    grafeo "github.com/GrafeoDB/grafeo/crates/bindings/go"
)

func main() {
    db, _ := grafeo.OpenInMemory()
    defer db.Close()
    fmt.Println("Grafeo installed successfully!")
}

WebAssembly

npm install @grafeo-db/wasm

Verify Installation

import init, { Database } from '@grafeo-db/wasm';

await init();
const db = new Database();
console.log('Grafeo WASM installed successfully!');

C# / .NET

dotnet add package GrafeoDB

Verify Installation

using Grafeo;

var db = new GrafeoDB();
Console.WriteLine("Grafeo installed successfully!");

Dart

Add to pubspec.yaml:

dependencies:
  grafeo: ^0.5.21

Verify Installation

import 'package:grafeo/grafeo.dart';

void main() {
  final db = GrafeoDB.memory();
  print('Grafeo installed successfully!');
  db.close();
}

Rust

Using Cargo

Add Grafeo to the project:

cargo add grafeo

Or add it manually to Cargo.toml:

[dependencies]
grafeo = "0.5"

Feature Flags

The embedded profile is enabled by default: GQL, AI features (vector/text/hybrid search, CDC), graph algorithms and parallel execution. Use feature groups or individual flags to customize:

[dependencies]
# Default (embedded profile): GQL + AI + algorithms + parallel
grafeo = "0.5"

# All languages + AI + storage + RDF
grafeo = { version = "0.5", default-features = false, features = ["full"] }

# Only query languages, no AI features
grafeo = { version = "0.5", default-features = false, features = ["languages"] }

# GQL with AI features
grafeo = { version = "0.5", default-features = false, features = ["gql", "ai"] }

# Minimal: GQL only
grafeo = { version = "0.5", default-features = false, features = ["gql"] }

# With ONNX embedding generation (opt-in, not in full)
grafeo = { version = "0.5", features = ["embed"] }

Feature Groups

Profile / Group Contents Description
embedded gql, ai, algos, parallel, regex Default for libraries and bindings
browser gql, regex-lite Default for WASM
server / full embedded + languages + storage + rdf + cdc Everything except embed
languages gql, cypher, sparql, gremlin, graphql, sql-pgq All query language parsers
ai vector-index, text-index, hybrid-search, cdc AI/RAG search + change tracking
storage wal, spill, mmap, grafeo-file Persistence backends
algos graph algorithms SSSP, PageRank, centrality, community detection
embed ort, tokenizers ONNX embedding generation (opt-in, ~17MB)

Individual Language Flags

Feature Description
gql GQL (ISO/IEC 39075): default query language
cypher Cypher (openCypher 9.0)
sparql SPARQL (W3C 1.1) + RDF support
gremlin Gremlin (Apache TinkerPop)
graphql GraphQL
sql-pgq SQL/PGQ (SQL:2023 GRAPH_TABLE)

Individual AI Flags

Feature Description
vector-index HNSW approximate nearest neighbor index
text-index BM25 inverted index for full-text search
hybrid-search Combined text + vector search with score fusion
cdc Change data capture (before/after property snapshots)

Verify Installation

use grafeo::GrafeoDB;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let db = GrafeoDB::new_in_memory();
    println!("Grafeo installed successfully!");
    Ok(())
}

Grafeo Server (Docker)

For a standalone database server accessible via REST API, use grafeo-server:

# Standard: all query languages, AI/search, web UI
docker run -p 7474:7474 grafeo/grafeo-server

Three image variants are available:

Variant Tag Description
lite grafeo-server:lite GQL only, no UI, smallest footprint
standard grafeo-server:latest All languages + AI/search + web UI
full grafeo-server:full Everything + auth + TLS + ONNX embed
# Lite: minimal, GQL only
docker run -p 7474:7474 grafeo/grafeo-server:lite

# Full: production with auth and TLS
docker run -p 7474:7474 grafeo/grafeo-server:full \
  --auth-token my-secret --data-dir /data

Server at http://localhost:7474. Web UI (standard/full) at http://localhost:7474/studio/.

See the grafeo-server documentation for full API reference and configuration.

Building from Source

Clone the Repository

git clone https://github.com/GrafeoDB/grafeo.git
cd grafeo

Build Rust Crates

cargo build --workspace --release

Build Python Package

cd crates/bindings/python
uv add maturin
maturin develop --release

Build Node.js Package

cd crates/bindings/node
npm install
npm run build

Build WASM Package

wasm-pack build crates/bindings/wasm --target web --release

Next Steps

With Grafeo installed, continue to the Quick Start guide.