SNAP is a general purpose network analysis and graph mining library. It is written in C++ and easily scales to massive networks with hundreds of millions of nodes, and billions of edges. It efficiently manipulates large graphs, calculates structural properties, generates regular and random graphs, and supports attributes on nodes and edges.

SNAP network analysis library

Stanford Network Analysis Package (SNAP) is a general purpose network analysis and graph mining library that is easily scales to massive networks, is efficient and easily extendible. It naturally supports rich networks with complex data types associated with nodes and edges of the network. SNAP was developed in course of my PhD studies and was build on top of a general purpose STL (Standard Template Library)-like library GLib that was developed at Jozef Stefan Institute.

Overview and documentation

SNAP distinguishes between graphs and networks. Graphs describe raw topologies. That is nodes with unique integer ids and directed/undirected/multiple edges between the nodes of the graph. Networks are graphs with data on nodes and/or edges of the network. Data types that reside on nodes and edges are simply passed as template parameters which provides a very fast and convenient way to implement various kinds of networks with rich data on nodes and edges.

SNAP is based on node and edge iterators which allows for efficient implementation of algorithms that work on networks regardless of their type (directed, undirected, graphs, networks) and specific implementation.

For more information on SNAP refer to documentation.

Download

Download the SNAP library.

Mailing List

Join SNAP Users mailing list for discussions on SNAP installation, use, and development.