A free Java library providing mathematical graph-theory objects and algorithms.
JGraphT is a free, open-source Java library that provides mathematical graph-theory objects and algorithms. It allows developers to create, manipulate, and analyze various types of graphs (directed, undirected, weighted) and apply algorithms like shortest path, connectivity, and flow computations. It solves the problem of implementing complex graph structures and algorithms from scratch in Java applications.
Java developers and researchers working on applications involving network analysis, data relationships, optimization problems, or any domain requiring graph modeling and algorithmic processing.
Developers choose JGraphT for its comprehensive feature set, strong adherence to graph theory principles, modular design, and active community support. It offers a production-ready, well-documented alternative to building custom graph solutions, with extensive algorithm coverage and format support.
Master repository for the JGraphT project
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes a wide array of graph algorithms like shortest path, connectivity, and flow, as highlighted in the Key Features, saving developers from implementing complex math from scratch.
Supports import/export in DOT, GraphML, CSV, and JSON via the jgrapht-io module, enabling seamless data exchange with other tools and systems.
Designed with separate modules (e.g., jgrapht-core, jgrapht-opt) for core functionality and optimizations, allowing flexible integration and extensibility.
Offers integration with JGraphX for interactive graph visualization and editing, as mentioned in the Key Features, aiding in debugging and presentation.
The library relies on multiple external dependencies (e.g., JHeaps, JGraphX, Guava), which can increase project size and complexity, as seen in the release contents list.
Requires JDK 11 or later starting with version 1.5.0, limiting compatibility with legacy Java applications or older development environments.
Offered under both LGPL 2.1 and EPL licenses, which may require careful legal review for proprietary projects, adding overhead for commercial use.