NetworkX

NetworkX (NX) is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

Features:
 * Allows for 1M+ nodes, 10M+ edges
 * Includes standard graph-theoretic and statistical physics functions
 * Easy exchange of network algorithms between applications, disciplines, and platforms
 * Includes many classic graphs and synthetic networks
 * Nodes and edges can be "anything" (e.g. time-series, text, images, XML records)
 * Exploits existing code from high-quality legacy software in C, C++, Fortran, etc.
 * Open source (encourages community input)
 * Unit-tested

More info on the NetworkX homepage.

TODO:
 * check which formats it accepts as input.
 * check if it comes with datasets ready to use.