I've created a Graph plotting tool in Rust

69 points RHIgUm9iZXJ0IEZvcmQ 32 comments

Over the past couple of years, I've been working a lot with data structures in Rust. I struggled to find a visualization tool for Rust that could handle massive graphs and complex relationships (and still look somewhat modern (looking at you Graphviz)).

So over the last few months, I built graphplot (crates.io/crates/graphplot), AND NO THIS IS NOT WRITTEN BY AI (if it contains bad code it's on me)! :P

Some features to mention:

  • Typst math formulas support (both in Nodes and Edges),
  • Multiple Layout-engines,
  • Subgraph support (actually unlimited nesting is supported),
  • Customizable Light and Dark themes,
  • Highlighting paths (both Nodes and Edges),
  • SVG, PNG, and PDF export.

Because of the rendering-engines (Layout engine and Typst engine with math fonts) it is a heavy backend, and the engines needs to stay on memory. So I built it with a lightweight Rust client that connects to a backend API.

I am self-hosting the API so you guys can try it out. You can access it using this token: reddit-pro-2026.

I'd love to hear your thoughts! Is this something you think is cool and need every now and then for work? Or is existing tools like Wolfram engine, Graphviz etc good enough?

If this is something the community actually will use I'm happy to self-host this for free, indefinitely :)

How to

cargo add graphlot --features png
use graphplot::Multigraph;

fn main() {
    // 1. create a graph
    let mut graph = Multigraph::from("Graph");

    // 2. add nodes & edges (or dedicated add_edge(..) & add_node(..))
    graph.add("A", "B");
    graph.add("A", "C");
    graph.add("B", "D");

    // 3. export to png
    let res = graph.save("graph.png", "reddit-pro-2026", None);
    println!("Saved Graph.png: {res:?}");
}

Example plots

https://imgur.com/a/ua5xHrg