scala-graph / scala-graph

Graph for Scala is intended to provide basic graph functionality seamlessly fitting into the Scala Collection Library. Like the well known members of scala.collection, Graph for Scala is an in-memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way.


Graph for Scala

This is the source code repository and issue tracker for Graph for Scala.

Questions or any feedback are appreciated. Please use GitHub issues for proven issues or enhancement requests but not for questions.

You are also welcome as a co-contributor.

Have fun with Graph for Scala.



1.x started in 2011 and has evolved by paying high attention to version compatibility to allow little migration effort.

2.x started in 2019 to make some significant improvements that also need new, simplified signatures. Added features include

  • multiple sources for directed hyperedges
  • easy edge class definition using case classes thus easy definition of edge ADTs
  • improved functional graph handling

There is still much left to do before 2.0 is ready for shipment.

3.x is planned to support functional immutability by representing immutable graphs by a persistent data structure.