← Back to all sparks
I

igraph

DEVOPS
Velocity0.0

Library for creating and manipulating graphs

Twenty years in, igraph finally committed to a stable API

graph-theoryc-libraryapi-stabilitynetwork-analysisversioning
Current state
igraph reached 1.0 in September 2025, closing a 0.x series that ran for nearly two decades. The release came with an explicit versioning policy, a consolidated and more predictable C API, and a set of breaking changes that had been deferred for years - a C++14 requirement, a recommended igraph_setup() call, and igraph_integer_t renamed. The final 0.x release shipped the same day, and 1.0.1 since has been compile and CRAN-compliance fixes.
Where it's heading
The pre-1.0 releases show where the growth was: graph products, cycle enumeration, feedback vertex and arc sets, percolation, Mycielski transformations - much of it contributed rather than written in-house. With the API now under a versioning commitment, that expansion has to happen additively, and several of the newest functions are explicitly marked experimental to preserve room to change them.
Prediction
Expect the experimental functions from the late 0.10.x releases to be the ones that stabilise or change first, since the versioning policy now constrains everything else. Near-term releases will most likely stay in the 1.0.x patch range while downstream language bindings catch up.

Recent moves

  1. 7mo ago

    exit() and std::cout removed from the shared library

    Removes exit() and std::cout references that slipped into the shared library through Qhull and Infomap, plus compilation fixes for Apple and emscripten targets. Packaging hygiene required by CRAN, invisible in the API.

    View source ↗
  2. 10mo ago

    igraph 1.0.0

    ⚡ SPARK

    The 1.0 release, arriving nearly twenty years after the first, trades the accumulated inconsistencies of 0.x for a documented versioning policy and a stable interface. The breaking changes it bundles are ones that had been waiting for exactly this moment.

    View source ↗
  3. 10mo ago

    Final 0.x release adds graph products and percolation

    The final 0.x release, shipped the same day as 1.0, and a substantial one: lexicographic, strong and modular graph products, rooted products, Mycielski transformations, layout alignment and percolation functions, much of it externally contributed.

    View source ↗
  4. 11mo ago

    Release candidate previewing the 1.0 breaking changes

    The 1.0 release candidate, carrying the merged changelog of the breaking changes that shipped in the final release three weeks later. Useful as the migration document for 0.10.x code rather than as a release in its own right.

    View source ↗
  5. 1y ago

    Triangle counting, graph products, infinite-order neighborhoods

    Adds triangle counting, graph products and a boolean RNG accessor, and lets neighborhood functions treat a negative order as infinite. Also fixes incorrect independent-vertex-set results on graphs with self-loops.

    View source ↗
  6. 1y ago

    Simple cycle enumeration and feedback vertex sets

    A cycle-and-feedback release: simple cycle enumeration with an optional length bound, single-cycle detection, minimum feedback vertex sets, and a much faster exact minimum feedback arc set. Several arrive as experimental functions, which is what 1.0's versioning policy later formalises.

    View source ↗