What I need is a JavaScript implementation of [pure mathematical graphs](http://en.wikipedia.org/wiki/Graph_%28mathematics%29). To be clear I DON'T mean graph visualization libraries like [sigma.js](http://sigmajs.org/) or [d3.js](http://bl.ocks.org/4062045).

The library I'm looking for would implement following features:

* creation of directed and undirected graph objects
* creation of weighted and unweighted graps objects
* adding/removing vertices and edges to/from the graph
* adding labels to vertices and edges (i.e. additional meta data)
* implementation of basic graph search and traversal algorithms like [depth-first-search](http://en.wikipedia.org/wiki/Depth-first_search), [breadth-first search](http://en.wikipedia.org/wiki/Breadth-first_search), [Dijkstra's algorithm](http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm), [A\*](http://en.wikipedia.org/wiki/A%2a_search_algorithm) and [others](http://en.wikipedia.org/wiki/Graph_traversal).

Does anyone know if one already exists?