Origin

Born from the ACT-IAC 2026 AI Hackathon. We needed graph algorithms for the Integrity platform but Memgraph came with 100GB RAM requirements, a Docker dependency, and a dual license. GraphWizard replaces all of that with in-process algorithms you can import directly — no server, no container, no license headaches.

40+ Algorithms Across 10 Packages

PackageCountAlgorithms
centrality12Betweenness, Closeness, Degree, Eigenvector, PageRank, Katz, HITS, Harmonic, Load, Percolation, Stress, Current Flow
community4Louvain, Label Propagation, Girvan-Newman, Modularity
connectivity9+Connected Components, Strongly Connected, Bridges, Articulation Points, Biconnected, Condensation, Weakly Connected, Tarjan, Kosaraju
embedding3Node2Vec, DeepWalk, Laplacian Eigenmaps
flow2Edmonds-Karp, Push-Relabel
matching1Maximum Matching (Hopcroft-Karp)
paths5Dijkstra, Bellman-Ford, A*, Floyd-Warshall, Johnson
similarity8Jaccard, Cosine, Adamic-Adar, Common Neighbors, Preferential Attachment, Resource Allocation, SimRank, Overlap
structure8+Density, Diameter, Radius, Eccentricity, Girth, Clustering Coefficient, Degree Distribution, Transitivity
traverse3BFS, DFS, Topological Sort

Design Philosophy

  • One import per domaincentrality.Betweenness(g), community.Louvain(g)
  • Consistent return typesmap[int64]float64 for centrality scores, [][]int64 for components
  • Standard gonum interfaces — works with any graph.Graph implementation
  • Cleanroom from academic papers — no ported code, every algorithm implemented from the original research
  • 97.3% test coverage — 5 packages at 100% coverage

By the Numbers

50+
Source Files
7,500+
Lines of Code
220+
Test Functions
97.3%
Test Coverage

Quick Example

package main

import (
    "fmt"
    "github.com/intelligrit/graphwizard/centrality"
    "github.com/intelligrit/graphwizard/connectivity"
    "gonum.org/v1/gonum/graph/simple"
)

func main() {
    g := simple.NewUndirectedGraph()
    // ... add edges ...

    // Find structural weak points
    bridges := connectivity.Bridges(g)
    fmt.Println("Bridges:", bridges)

    // Rank node importance
    scores := centrality.Betweenness(g)
    for node, score := range scores {
        fmt.Printf("Node %d: %.4f\n", node, score)
    }
}

Links

See It in Action

GraphWizard powers the fraud detection graph analysis in the Integrity case study. Read how we used centrality, community detection, and connectivity algorithms to surface anomalous patterns in federal payment data.