BuckleScript bindings for dagre.
Although most names come straight from the original library, there are a few changes to adapt to Reason and a few aliases for my own benefit.
- Bindings for
graphlib
ara under theDagre.Graph
module. - Bindings for
dagre
are under theDagre.Layout
module. graphlib
uses "label" to refer to data associated with graph, nodes and edges.bs-dagre
uses "attributes" instead. For example, instead ofsetDefaultNodeLabel
you havesetDefaultNodeAttrs
.
The steps to compute a graph layout are: create a graph, add nodes and edges and finally create a layout.
open Dagre;
let graph = Graph.make();
Graph.setDefaultEdgeAttrs(graph, () => {"minlen": 2});
The snippet above creates a graph with default attributes,
if you need to tweak them, use Graph.Attrs.make
.
Graph.setNodeWith(graph, "a", Node.attrs(~label="first", ~width=20, ~height=20), ());
Graph.setNodeWith(graph, "b", Node.attrs(~label="second", ~width=20, ~height=20), ());
Graph.setEdge(graph, Edge.t(~v="a", ~w="b", ()));
let layout = Layout.make(graph);
// Use the layout to render the graph.
Check the examples
for more.
bs-dagre is licensed under the terms of the MIT License. See the LICENSE file for details.