JGraphT

A free Java graph library

JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:

directed and undirected graphs.

graphs with weighted / unweighted / labeled or any user-defined edges.

various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs.

unmodifiable graphs—allow modules to provide "read-only" access to internal graphs.

listenable graphs—allow external listeners to track modification events.

subgraphs graphs that are auto-updating subgraph views on other graphs.

all compositions of above graphs.

Although powerful, JGraphT is designed to be simple and type-safe (via Java 5 generics). For example, graph vertices can be of any objects. You can create graphs based on: Strings, URLs, XML documents, etc; you can even create graphs of graphs! This code example shows how.

Other features offered by JGraphT:

graph visualization using the JGraph library (try this demo!)

complete source code included, under the terms of the GNU Lesser General Public License.

comprehensive Javadocs.

easy extensibility.

License: GNU LGPL.

Tags: discrete mathematics, graph theory, library.

Interface: library.

Source language: Java.

Supported language: Java.

Staff

Maintainer: Barak Naveh.

Links

Homepage: http://jgrapht.sourceforge.net/.

Source repository: http://sourceforge.net/svn/?group_id=86459.

Bug database: http://sourceforge.net/tracker/?group_id=86459.

Mailing lists

Announcements: https://lists.sourceforge.net/lists/listinfo/jgrapht-announce.

Support: http://lists.sourceforge.net/mailman/listinfo/jgrapht-users.

Development: https://lists.sourceforge.net/lists/listinfo/jgrapht-developers.