simplegraph

Crates.iosimplegraph
lib.rssimplegraph
version0.2.2
sourcesrc
created_at2022-04-27 13:37:34.035596
updated_at2022-06-07 16:43:11.640381
descriptionA simple graph implementation
homepage
repositoryhttps://github.com/FilippoRanza/simplegraph
max_upload_size
id576051
size50,486
Filippo Ranza (FilippoRanza)

documentation

README

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.

Commit count: 26

cargo fmt