scala-graph / scala-graph   1.13.2

Apache License 2.0 GitHub

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.

Scala versions: 2.13 2.12 2.11 2.10
Scala.js versions: 1.x 0.6

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. It has evolved by paying high attention to version compatibility.

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

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

Shipment is due shortly after Scala 2.13.11 is published because this fix will help to further simplify user code.


  • Complete migration of random graphs for 2.x.
  • Investigate whether and how the JSON module should be retained and migrated to 2.x or dropped. Migrate it if needed.
  • Remove internal State by possibly also changing node references to IDs.
  • Add support for algorithms by enrichment that use fluent properties.
  • Reimplement immutable graphs to be based on a persistent data structure.