# dominikbraun/graph

A library for creating generic graph data structures and modifying, analyzing, and visualizing them.

Repository: https://github.com/dominikbraun/graph
Canonical: https://ross.abutalabs.com/products/graph
Homepage: https://dominik.info/graph
Language: Go
License: Apache-2.0
License Family: permissive
Topics: graph, graph-algorithms, graph-theory, graph-traversal, graph-visualization, algorithm, graphs, graphviz, visualization, graph-library
Last push: 2024-12-11T13:56:24+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 1687, "days_push": 630, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2221, forks 121 (observed 2026-08-28T04:06:27.606416+00:00)

## What it is
A Go library for creating generic graph data structures with vertices and edges of any type, supporting modification, analysis, and visualization. It provides graph algorithms like shortest paths, DFS/BFS traversal, topological sorting, and strongly connected components, plus Graphviz DOT export.

## Use cases
- build and manipulate graph data structures in Go
- find shortest paths in a weighted graph
- perform DFS or BFS traversal on a graph
- compute strongly connected components or topological order
- visualize a graph using Graphviz DOT output
- create directed acyclic graphs with cycle validation
- model networks with custom vertex types like cities

## When to choose
- you need a pure-Go graph library with zero dependencies
- you want generic vertices of any custom type
- you need common graph algorithms like shortest path or SCC
- you want to export graphs to Graphviz for visualization

## When to avoid
- you need a stable 1.0 API - the library is still in version 0
- you need massive-scale distributed graph processing
- you need a graph database with persistence out of the box

## Facets
- artifact type: library
- maturity: active
- function: graphics, data-visualization, developer-tools
- domain: data-science, developer-tools
- platform: go, cross-platform
- tags: graph-data-structure, graph-algorithms, graphviz, dot-language, generic, zero-dependencies, algorithms

## Member repositories
- dominikbraun/graph (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:27.606416+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:45:47.103951+00:00, confidence not recorded.
  - readme: https://github.com/dominikbraun/graph (fetched 2026-08-28T04:06:27.606416+00:00, sha 6ee6036a9005)
  - homepage: https://dominik.info/graph (fetched 2026-08-29T10:25:44.306560+00:00, sha 5a0df33fafe7)
- Data as of 2026-08-30T08:39:29.467469+00:00.
