| Crates.io | graaf |
| lib.rs | graaf |
| version | 0.111.0 |
| created_at | 2024-03-30 15:06:09.080279+00 |
| updated_at | 2025-03-24 19:13:21.427619+00 |
| description | Work with directed graphs. |
| homepage | |
| repository | https://github.com/bsdrks/graaf |
| max_upload_size | |
| id | 1191151 |
| size | 1,430,078 |
Rust-powered directed graphs.
Add this to your Cargo.toml:
[dependencies]
graaf = "0.111.0"
AdjacencyListWeighted represents digraphs as a vector of maps.AdjacencyMatrix represents digraphs as a matrix using a bit vector.AdjacencyList represents digraphs as a vector of sets.AdjacencyMap represents digraphs as a map of sets.EdgeList represents digraphs as a vector of tuples.Biclique generates a complete bipartite digraph.Circuit generates a circuit digraph.Complete generates a complete digraph.Cycle generates a bidirectional circuit.Empty generates a digraph without arcs.ErdosRenyi generates a random digraph.Path generates a path digraph.RandomRecursiveTree generates a random recursive tree.RandomTournament generates a random tournament.Star generates a star digraph.Wheel generates a wheel digraph.AddArcWeighted adds an arc to an arc-weighted digraph.AddArc adds an arc to an unweighted digraph.ArcWeight returns an arc's weight.ArcsWeighted iterates a digraph's weighted arcs.Arcs iterates a digraph's arcs.Complement returns a digraph's complement.ContiguousOrder returns a contiguous digraph's order.Converse returns a digraph's converse.DegreeSequence iterates a digraph's degrees.Degree returns a vertex's degree.FilterVertices filters a digraph's vertices.HasArc checks whether a digraph contains an arc.HasEdge checks whether a digraph contains an edge.HasWalk checks whether a digraph contains a walk.InNeighbors iterates a vertex's in-neighbors.IndegreeSequence iterates a digraph's indegrees.Indegree returns a vertex's indegree.IsBalanced checks whether a digraph is balanced.IsComplete checks whether a digraph is complete.IsIsolated checks whether a vertex is isolated.IsOriented checks whether a digraph is oriented.IsPendant checks whether a vertex is a pendant.IsRegular checks whether a digraph is regular.IsSemicomplete checks whether a digraph is semicomplete.IsSimple checks whether a digraph is simple.IsSpanningSubdigraph checks whether a digraph spans a superdigraph.IsSubdigraph checks whether a digraph is a subdigraph.IsSuperdigraph checks whether a digraph is a superdigraph.IsSymmetric checks whether a digraph is symmetric.IsTournament checks whether a digraph is a tournament.Order counts the vertices in a digraph.OutNeighborsWeighted iterates a vertex's weighted out-neighbors.OutNeighbors iterates a vertex's out-neighbors.OutdegreeSequence iterates a digraph's outdegrees.Outdegree returns a vertex's outdegree.RemoveArc removes an arc from a digraph.SemidegreeSequence iterates a digraph's semidegrees.Sinks iterates a digraph's sinks.Size counts the arcs in a digraph.Sources iterates a digraph's sources.Union returns the union of two digraphs.Vertices iterates a digraph's vertices.BellmanFordMoore::distances finds the shortest distances from a source vertex to all other vertices in an arc-weighted digraph with negative weights.A breadth-first search explores an unweighted digraph's vertices in order of their distance from a source.
Bfs iterates the vertices.BfsDist iterates the vertices and their distance from the source.BfsPred iterates the vertices and their predecessors.BfsDist::distances finds the shortest distances.BfsPred::cycles returns the cycles along the shortest path.BfsPred::predecessors finds the predecessors.BfsPred::shortest_path finds the shortest path.A depth-first search explores an unweighted digraph's vertices in order of their depth from a source.
Dfs iterates the vertices.DfsDist iterates the vertices and their distance from the source.DfsPred iterates the vertices and their predecessors.DfsPred::predecessors finds the predecessors.Dijkstra's algorithm finds the shortest paths in an arc-weighted digraph.
Dijkstra iterates the vertices.DijkstraDist iterates the vertices.DijkstraPred iterates the vertices and their predecessors.DijkstraDist::distances finds the shortest distances.DijkstraPred::predecessors finds the predecessors.DijkstraPred::shortest_path finds the shortest path.A DistanceMatrix contains the shortest distances between all vertex pairs in a digraph.
DistanceMatrix::center finds the digraph's center.DistanceMatrix::diameter finds the digraph's diameter.DistanceMatrix::eccentricities returns the vertices' eccentricities.DistanceMatrix::is_connected checks the digraph's connectedness.DistanceMatrix::periphery finds the digraph's periphery.FloydWarshall::distances finds the distance between each vertex pair in an arc-weighted digraph.Johnson75::circuits finds all circuits in a digraph.A PredecessorTree contains the vertex predecessors.
PredecessorTree::search finds a vertex by value.PredecessorTree::search_by finds a vertex by predicate.Tarjan::components finds strongly connected components in a digraph.See CHANGELOG.md for a list of changes.
Licensed under Apache License, Version 2.0 or MIT license at your option.
Feel free to reach out with questions or suggestions.