From the website:
igraph is a free software package for creating and manipulating undirected and directed graphs. It includes implementations for classic graph theory problems like minimum spanning trees and network flow, and also implements algorithms for some recent network analysis methods, like community structure search.
The efficient implementation of igraph allows it to handle graphs with millions of vertices and edges. The rule of thumb is that if your graph fits into the physical memory then igraph can handle it.
….
- igraph contains functions for generating regular and random graphs according to many algorithms and models from the network theory literature.
- igraph provides routines for manipulating graphs, adding and removing edges and vertices.
- You can assign numeric or textual attribute to the vertices or edges of the graph, like edge weights or textual vertex ids.
- A rich set of functions calculating various structural properties, eg. betweenness, PageRank, k-cores, network motifs, etc. are also included.
- Force based layout generators for small and large graphs
- The R package and the Python module can visualize graphs many ways, in 2D and 3D, interactively or non-interactively.
- igraph provides data types for implementing your own algorithm in C, R, Python or Ruby.
- Community structure detection algorithms using many recently developed heuristics.
- igraph can read and write many file formats, e.g., GraphML, GML or Pajek.
- igraph contains efficient functions for deciding graph isomorphism and subgraph isomorphism
- It also contains an implementation of the push/relabel algorithm for calculating maximum network flow, and this way minimum cuts, vertex and edge connectivity.
- igraph is well documented both for users and developers.
- igraph is open source and distributed under GNU GPL.