Java library that provides graph data-structures and algorithms.

Why JGraphT?

JGraphT has served as the de facto standard Java graph data structure and algorithm library for more than a decade, and its activity levels and popularity have continued to grow over the years. But graph theory is a fertile and expansive field, so there's always more to do! By contributing to JGraphT, you'll be powering the projects of many academic researchers and industry developers now and in the future, and gaining real-world development experience for yourself.

What's Involved

Most of the projects on our ideas list are algorithm implementations or improvements. After ramping up on general familiarity with JGraphT, carrying out a project typically involves

  • reading relevant research papers
  • studying existing portions of our codebase
  • discussing approaches with mentors and the rest of the community
  • developing and testing an implementation in your own github branch
  • submitting a pull request for review
  • responding to code review comments
  • over and over until...
  • your pull request gets merged into trunk and eventually released!
  • and then you get your first bug report :)

For larger projects, the work may need to be broken up into a series of pull requests.

lightbulb_outline View ideas list


  • java


email Mailing list
mail_outline Contact email

JGraphT 2018 Projects

  • Alexandru Valeanu
    Enhanced support for trees
    JGraphT currently lacks proper support for trees (i.e. simple, undirected, connected, acyclic graphs). Sure, all algorithms that work on undirected...
  • Tymofii Chudakov
    Kolmogorov's Blossom V algorithm for solving minimum weight perfect matching problem in general graphs
    This project is focused on developing an implementation of the Kolmogorov's Blossom V algorithm for minimum weight perfect matching, which is a known...