ANN: LightGraphs v0.8.0

I am very pleased to announce the release of version 0.8.0 of LightGraphs.jl. This release targets Julia v0.6 and contains a few major changes that will benefit most users.

The most visible/practical change is that the integers that represent vertex indices (and the edges that are composed of them) are now abstracted throughout the codebase: that is, it is possible to use any type <:Integer to represent a vertex index. This allows us to optmize memory, so that a graph based on UInt32 (which can represent graphs up to 2^32 vertices) takes just over half the memory of the old-style graph (which used Int64 on most machines). These graphs also allow for faster computations (for example, we’re seeing a 10-20% speedup in betweenness centrality on UInt32 vs Int64 graphs). The other integer types are similarly supported.

Other changes of note:

  • documentation has also been overhauled to be consistent.
  • scaffolding is in place to allow different edge types (such as weighted edges). We will be developing a weighted edge type as a proof of concept in the next major release.

There may be a few glitches; please report via the LightGraphs issues page.

Shoutout to all the folks who helped make this happen; in particular, @jpfairbanks, @juliohm, and @tkelman.

9 Likes

That is awesome @anon94023334! I am happy to contribute, this project has helped my research incredibly and that is the minimum I can do :slight_smile:

1 Like