19 releases
0.6.3 | Nov 9, 2021 |
---|---|
0.6.2 | Apr 14, 2020 |
0.6.1 | Feb 18, 2020 |
0.5.3 | Oct 4, 2019 |
0.2.3 | Mar 27, 2019 |
#2052 in Data structures
318 downloads per month
Used in 2 crates
105KB
1.5K
SLoC
Graphlib
Graphlib is a simple and powerful Rust graph library.
This library attempts to provide a generic api for building, mutating and iterating over graphs that is similar to that of other data-structures found in Rust i.e. Vec
, HashMap
, VecDeque
, etc.
Using Graphlib
use graphlib::Graph;
let mut graph: Graph<usize> = Graph::new();
// Add two vertices to the graph
let id1 = graph.add_vertex(1);
let id2 = graph.add_vertex(2);
// Add an edge between the two vertices
graph.add_edge(&id1, &id2);
assert_eq!(*graph.fetch(&id1).unwrap(), 1);
assert_eq!(*graph.fetch(&id2).unwrap(), 2);
// The graph has 2 vertices and one edge at this point
assert_eq!(graph.vertex_count(), 2);
assert_eq!(graph.edge_count(), 1);
// Remove one of the connected vertices
graph.remove(&id1);
assert_eq!(graph.vertex_count(), 1);
assert_eq!(graph.edge_count(), 0);
Using without std
In Cargo.toml
:
[dependencies]
graphlib = { version = "*", features = ["no_std"] }
Contributing
We welcome anyone wishing to contribute to Graphlib! Check out the issues section of the repository before starting out.
License
Graphlib is licensed under the MIT license.
Dependencies
~3MB
~51K SLoC