4 releases

0.2.2 Jun 7, 2022
0.2.1 May 16, 2022
0.2.0 May 4, 2022
0.1.0 Apr 27, 2022

#1268 in Algorithms

45 downloads per month

MIT license

49KB
1K SLoC

simplegraph

Test crates.io PRs Welcome

simplegraph provides a simple graph implementation in Rust.

Features

simplegraph aims to be as simple as possible while providing all the features that I need. You can consider using simplegraph if you need:

  • support for direct and undirected graphs;
  • Adjacency List or Adjacency Matrix based graphs;
  • Graph to Graphviz (dot) source conversion;
  • Serialization and Deserialization support with Serde;
  • dynamic arc insertion;
  • update arc's and nodes' weights.

On the other side some intentional restriction are set on the graphs:

  • the number of nodes is set at creation time
  • nodes' and arcs' weights must implement num_traits::Num
  • weights are always present: it is not possible to create a simple unweighted graph.

simplegraph does not provide any check on the operation performed on it. It is caller's responsibility to ensure operations soundness.

Why?

To my best knowledge petgrah is the most used general purpose graph library for Rust. It is a very complete and complex library that allows to implement complex graphs for various purposes. If you choose/need to use a graph library you should check it out too.

simplegraph aims to be a simple wrap around adjacency list or matrix. I've implemented this library mainly for my own use and avoid some - from my point of view - needless complexities. So it may lack some features that I'll add just when, and if, I'll need them.

Dependencies

~1.7–2.4MB
~50K SLoC