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 |
#1403 in Algorithms
49KB
1K
SLoC
simplegraph
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.6–2.3MB
~48K SLoC