JUNG the Java Universal Network/Graph Framework--is a software
library that provides a common and extendible language for the
modeling, analysis, and visualization of data that can be
represented as a graph or network. It is written in Java, which
allows JUNG-based applications to make use of the extensive
built-in capabilities of the Java API, as well as those of other
existing third-party Java libraries. The JUNG architecture is
designed to support a variety of representations of entities and
their relations, such as directed and undirected graphs,
multi-modal graphs, graphs with parallel edges, and hypergraphs.
It provides a mechanism for annotating graphs, entities, and
relations with metadata. This facilitates the creation of
analytic tools for complex data sets that can examine the
relations between entities as well as the metadata attached to
each entity and relation. The current distribution of JUNG
includes implementations of a number of algorithms from graph
theory, data mining, and social network analysis, such as
routines for clustering, decomposition, optimization, random
graph generation, statistical analysis, and calculation of
network distances, flows, and importance measures (centrality,
PageRank, HITS, etc.). JUNG also provides a visualization
framework that makes it easy to construct tools for the
interactive exploration of network data. Users can use one of
the layout algorithms provided, or use the framework to create
their own custom layouts. In addition, filtering mechanisms are
provided which allow users to focus their attention, or their
algorithms, on specific portions of the graph.
JUNG the Java Universal Network/Graph Framework--is a software
library that provides a common and extendible language for the
modeling, analysis, and visualization of data that can be
represented as a graph or network. It is written in Java, which
allows JUNG-based applications to make use of the extensive
built-in capabilities of the Java API, as well as those of other
existing third-party Java libraries. The JUNG architecture is
designed to support a variety of representations of entities and
their relations, such as directed and undirected graphs,
multi-modal graphs, graphs with parallel edges, and hypergraphs.
It provides a mechanism for annotating graphs, entities, and
relations with metadata. This facilitates the creation of
analytic tools for complex data sets that can examine the
relations between entities as well as the metadata attached to
each entity and relation. The current distribution of JUNG
includes implementations of a number of algorithms from graph
theory, data mining, and social network analysis, such as
routines for clustering, decomposition, optimization, random
graph generation, statistical analysis, and calculation of
network distances, flows, and importance measures (centrality,
PageRank, HITS, etc.). JUNG also provides a visualization
framework that makes it easy to construct tools for the
interactive exploration of network data. Users can use one of
the layout algorithms provided, or use the framework to create
their own custom layouts. In addition, filtering mechanisms are
provided which allow users to focus their attention, or their
algorithms, on specific portions of the graph.
There are no dependencies for this project. It is a standalone project that does not depend on any other jars.
Project Modules
jung-api
jung-graph-impl
jung-algorithms
jung-io
jung-visualization
jung-samples
JUNG: The Java Universal Network/Graph Framework
JUNG is a software library that provides a common and extensible language for the modeling, analysis, and visualization of data that can be represented as a graph or network. Its basis in Java allows JUNG-based applications to make use of the extensive built-in capabilities of the Java API, as well as those of other existing third-party Java libraries.
JUNG is currently administered primarily by @jrtom, one of the original co-creators of the JUNG project.
Bug fixes (with tests) are appreciated and will generally be acted upon pretty quickly if the fix is a clear win.
If you'd like to add a feature, or suggest a way that things could be done better, more cleanly, or more efficiently, we really appreciate it, we encourage you to open an issue, and you're welcome to make a pull request to show off a proof of concept.
However, at the moment we're largely focused on some big architectural changes that are going to touch essentially everything in JUNG. Once those changes land, we'll have more time and energy available to consider other changes.