### 15 releases (4 breaking)

✓ Uses Rust 2018 edition

0.5.3 | Oct 4, 2019 |
---|---|

0.5.2 | Sep 25, 2019 |

0.4.0 | Aug 17, 2019 |

0.3.1 | May 6, 2019 |

0.1.3 | Mar 16, 2019 |

#**193** in Data structures

**251** downloads per month

**MIT**license

77KB

1K
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`

, etc.`VecDeque`

### 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`

`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

~2MB

~38K SLoC