From the webpage:
Welcome to scalax.collection.Graph
Graph for Scala provides basic graph functionality that seamlessly fits into the Scala standard collections library. Like members of scala.collection, graph instances are in-memory containers that expose a rich, user-friendly interface.
Graph for Scala also has ready-to-go implementations of JSON-Import/Export and Dot-Export. Database emulation and distributed graph processing are due to be supported.
If you follow the “Core” option under “Users Guides” on the top menu bar, you will find: Core User Guide: Introduction, which reads in part:
Why Use Graph for Scala?
The most important reasons why Graph for Scala speeds up your development are:
- Simplicity: Creating, manipulating and querying
- Consistency: Graph for Scala seamlessly maintains a consistent state of nodes and edges including prevention of duplicates, intelligent addition and removal.
- Conformity: As a regular collection class,
Graphhas the same “look and feel” as other members of the Scala collection framework. Whenever appropriate, result types are Scala collection types themselves.
- Flexibility: All kinds of graphs including mixed graphs, multi-graphs and hypergraphs are supported.
- Functional Style: Graph for Scala facilitates a concise, functional style of utilizing graph functionality, including traversals, not seen in Java-based libraries.
- Extendibility: You can easily customize Graph for Scala to reflect the needs of you application retaining all benefits of
- Documentation: Ideal progress curve through adequate documentation.
Look and see!
You will find support for hyperedges, directed hyperedges, edges and directed edges.
Further documentation covers exporting to Dot, moving data into and out of JSON, and constraining graphs.