Spargel is a Java graph library that puts its effort in having a rather small but powerful code basis.
This is achieved by extending graphs via properties in form of vertice and edge maps. Because these maps are an individual implementation depending on the graph datastructure used, they are more memory efficient than using a Java HashMap.
Currently spargel is in its early stages, but will soon support more tasks. As now, implemented are:
* Adjecency graph data structures
* Algorithms: SSSP, APSP, Traversal, Min-Cut, Max-Flow, Many types of finding Components
* Creating sub graphs, vertice and edge maps that use a function to implement their mapping.
Spargel is released under GPLv3
- Type-safe Java graph library using generics
- Fast-performing maps of vertices and edges to types as vertice and edge properties
We have used this in some small software projects where we needed undirected graphs already. It's easy to use, cleanly written and already has some sweet graph algorithms implemented. I especially liked how easy it was to store additional information in both edges and vertices (e.g., have graphs with different edge types or assign a distance and a cost to an edge). The documentation could be improved I guess, but that holds for almost every software I know (especially libs).