Framework that allows working with undirected and directed graphs