News

GraphStream 2.0 released! Sep 21, 2020

:tada: Today we are proud to announce the official release of GraphStream 2.0! :confetti_ball:

This new major version of the library provides three new user interface implementations, the use of Java streams, bug fixes, minor API changes, and stronger foundations for future iterations of the library.

New User Interfaces

The main feature of this release is the creation of new UI implementations (Swing, JavaFx, and Android) that multiply the possible usages of the library.

Java 8 and API changes

Another feature is the preferred use of Java 8’s streams in order to iterate elements of the graphs. As such, new methods (nodes(), edges(), leavingEdges(), neighborNodes()) are proposed in order to traverse/iterate over the graphs.

graph.nodes()
        .filter(node -> node.getDegree() % 2 == 0)
        .forEach(System.out::println);

Streams are immutable and provide a much safer and less error-prone way to iterate over nodes and edges. This implies modifications in the API (hence the major version number bump) but other minor modifications happened such as the removal of method addAttribute in favor of setAttribute that always was an alias.

Installing GraphStream

GraphStream is, as usual, hosted on GitHub and the library can be downloaded from there (e.g. : https://github.com/graphstream/gs-core/releases). But the preferred way is to include the library as a dependency in you build system as GraphStream is published in the Maven Central Repository. Nightly builds and development branches can also be tested via JitPack.

Thank You and Demo

The 2.0 release represents several years of development thanks to Hicham’s hard work during his time as an engineer at the University Le Havre Normandy. Well Done Hicham!

Hicham also wrote a demo application that showcases GraphStream’s features using the JavaFx viewer. Check it out at https://github.com/graphstream/gs-app-click.