The central package of the ecosystem is Graphs.jl. It contains a standard graph interface and some basic types for unweighted graphs, as well as a set of combinatorial algorithms like shortest paths.

Many of the other packages we list rely only on this interface, so as to be compatible with arbitrary graph types.

SimpleWeightedGraphs.jl: Simple graphs with weighted edges.

MetaGraphs.jl: Graphs with metadata on the vertices and edges.

MetaGraphsNext.jl: A more efficient but less flexible alternative to MetaGraphs.jl.

StaticGraphs.jl: Memory-efficient immutable graphs.

MultilayerGraphs.jl: Graphs with multiple layers.

GraphsFlows.jl: Flow optimization algorithms.

GraphsMatching.jl: Matching optimization algorithms.

CommunityDetection.jl: Community detection algorithms.

GraphsOptim.jl: Graph optimization algorithms that rely on mathematical programming.

GraphIO.jl: Read graphs from files and write them to files in various formats.

SNAPDatasets.jl: Extract graphs from the SNAP Datasets collection.

GraphPlot.jl: Graph visualization utilities.

NetworkLayout.jl: Layout algorithms to position nodes automatically before plotting graphs and trees.

GraphDataFrameBridge.jl: Tools for interoperability between DataFrames.jl and Graphs.jl / MetaGraphs.jl.

Graph500.jl: Graph500 benchmarks.

CC BY-SA 4.0 JuliaGraphs organization. Last modified: September 25, 2023. Website built with Franklin.jl and the Julia programming language.