I'm trying to find a simple Java API for creating graph relationships. It should have some functionality like addEdge()
, addNode()
, isConnected(node1, node2)
, findPaths(node1, node2)
, etc. I need no UI, just logic.
I found a bunch of academic projects, but none seems to be "The Definitive Graph API".
Does anyone know about such an API?
a really decent one can be found here: http://javaddlib.sourceforge.net/jdd/
JGraphT sounds like what you're after.
Their API can create graphs from various input and also supports creating graphs using
addVertex
,addEdge
. They support finding shortest paths using various well know algorithms such as Bellman-Ford and Dijkstra They also have a complete javadoc available online.JUNG — the Java Universal Network/Graph Framework - is one of the fastest available (implementing the CERN math library COLT), especially if you want to do graph analysis, centrality measurements (betweennes, pagerank, etc.). Furthermore it allows for network visualization.
Definitly You should try the http://neo4j.org/ This is great Graph database written in Java but It can work as a embedded database to very small application too.
This database have everything You need even if you plan to store billions of nodes. Good luck.
Jdigraph is yet another graph library.
JDLS is a great library for Graphs and Datastructures in general. You could also use the Grappa library. Its advantage is that it can use the graphViz libraries for graph layouting.