Installation¶
Grafeo supports Python, Node.js/TypeScript, Go, C#, Dart, Rust and WebAssembly. Choose the installation method for the preferred language.
Python¶
Using uv (Recommended)¶
uv is a fast Python package installer:
Using pip (alternative)¶
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¶
Verify Installation¶
const { GrafeoDB } = require('@grafeo-db/js');
const db = await GrafeoDB.create();
console.log('Grafeo installed successfully!');
await db.close();
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¶
Verify Installation¶
import init, { Database } from '@grafeo-db/wasm';
await init();
const db = new Database();
console.log('Grafeo WASM installed successfully!');
C# / .NET¶
Verify Installation¶
Dart¶
Add to pubspec.yaml:
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:
Or add it manually to Cargo.toml:
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:
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¶
Build Rust Crates¶
Build Python Package¶
Build Node.js Package¶
Build WASM Package¶
Next Steps¶
With Grafeo installed, continue to the Quick Start guide.