Which programming languages and packages does igraph support?
Updated
igraph supports four programming environments: R, Python, Mathematica, and C/C++. Each has its own package or library, and all are open source and free. If you want to use igraph, pick the package that matches the language you already work in; the core functionality is the same across them.
The four official packages
| Language | Package / interface | Notes from igraph.org |
|---|---|---|
| R | igraph R package | Listed as an official package; the R package has passed the 2.0 version threshold |
| Python | python-igraph | Listed as an official package; recent releases include 0.11.8 and 0.11.6 |
| Mathematica | IGraph/M | Listed as an official package/interface |
| C/C++ | igraph C library | The core library; current series is C/igraph 1.0.x |
The site describes igraph as "a collection of network analysis tools with the emphasis on efficiency, portability and ease of use," and states it "can be programmed in R, Python, Mathematica and C/C++."
How to choose
- Already using R for statistics or data analysis: use the igraph R package. It integrates with that workflow and has a mature 2.x release line.
- Working in Python: use python-igraph. It is actively maintained, with 0.11.x releases.
- Working in Mathematica: use IGraph/M.
- Building performance-sensitive software or embedding graph analysis in an application: use the C/C++ library. It is the foundation the other interfaces build on, and the 1.0 series introduced a stable, more consistent API with an explicit versioning policy.
Version context worth knowing
The C library reached 1.0.0 in September 2025, roughly twenty years after the first igraph release. According to the site, 1.0 focuses on "a stable and more consistent interface that users and downstream maintainers can rely on," plus an official versioning policy. The last planned 0.x release was 0.10.17, and the site notes that moving to 1.0 involved breaking changes. If you maintain code against the C library, check the release notes before upgrading from 0.x.
For the R and Python packages, the site lists separate release histories (for example, python-igraph 0.11.8 and the R package crossing 2.0), so version numbers differ across languages — don't assume a matching number means matching features.
Where to go next
The site's navigation lists each package individually (igraph R package, python-igraph, IGraph/M, igraph C library), along with a community section pointing to a forum, Discord, and GitHub. Start from the package page for your language to get installation instructions and documentation.