GraphNeuralNetworks.jl: Deep Learning on Graphs with Julia
Carlo Lucibello, Aurora Rossi
TL;DR
This paper presents GraphNeuralNetworks.jl, a modular, multi-package framework for deep learning on graphs in Julia, supporting homogeneous, heterogeneous, and temporal graphs with rich node, edge, and graph attributes. It introduces a four-package architecture that provides both Flux- and Lux-based interfaces, anchored by a core message-passing layer and flexible data structures for efficient batched and GPU-accelerated processing. The work details practical components including installation, data representations, gather/scatter-based message passing, built-in layers like GATConv and GINConv, and an end-to-end training example, demonstrating how users can design custom layers and complex models. It positions the framework within the broader GNN ecosystem, acknowledges current limitations in large-graph training, and outlines future plans to expand hardware support and performance optimizations, underscoring the practical impact of enabling rapid experimentation and deployment of graph neural networks in Julia.
Abstract
GraphNeuralNetworks.jl is an open-source framework for deep learning on graphs, written in the Julia programming language. It supports multiple GPU backends, generic sparse or dense graph representations, and offers convenient interfaces for manipulating standard, heterogeneous, and temporal graphs with attributes at the node, edge, and graph levels. The framework allows users to define custom graph convolutional layers using gather/scatter message-passing primitives or optimized fused operations. It also includes several popular layers, enabling efficient experimentation with complex deep architectures. The package is available on GitHub: \url{https://github.com/JuliaGraphs/GraphNeuralNetworks.jl}.
