Live data from Hacker News

Show HN: A Graphviz Implementation in Rust

github.com

31–40 of 56 posts

Re: Show HN: A Graphviz Implementation in Rust

#31
post #13
post #9

I have always loved graphviz/dot and watching the rise of mermaid and other tools is encouraging that there's more competition in the ecosystem. But man, endlessly fiddling to fix the layouts is time I'd like back in my life

> But man, endlessly fiddling to fix the layouts is time I'd like back in my life I know many engineers are perfectionists, but pick your battles. It’s not as if the alternative of manually laying out every node and edge and maintaining it is universally better.

> pick your battles

And your text-based diagram tools. Kroki[1] has merged block, sequence, Plant UML, packet, Mermaid, GraphViz, and numerous other textual diagram formats into a simple REST API. A while back I integrated the API into my text editor so that I could use variables inside of diagrams[2] (such as character names in a sci-fi story that are also presented in a GraphViz-based family tree).

[1]: https://kroki.io/

[2]: https://github.com/DaveJarvis/keenwrite/blob/master/docs/scr...

Re: Show HN: A Graphviz Implementation in Rust

#33
post #6

this is very nice! what license will it have?

I'll pick one of the open source licenses once the project is more useful.

I'd recommend checking out the API Guidelines for some thoughts on this. The default recommendation if you don't have another preference is MIT + Apache 2.0

https://rust-lang.github.io/api-guidelines/necessities.html#...

Re: Show HN: A Graphviz Implementation in Rust

#34
Really glad to see this! Really want an easy way to render graphs in Rust without resorting to the graphiz binary.

What is the current status? Not seeing it listed anywhere, like if there are features that are not supported or if it uses certain layout algorithms but others are desired.

Would you be willing to make a `[lib]` available? I see you have a `lib.rs` but it'd be great if using it didn't require pulling in `[[bin]]` dependencies (you can mark them as optional and mark `required-features` on your bin like pulldown-cmark does [0] or split it into a separate crate in a workspace). It'd also be good to find an available name for the lib and get it published (looks like someone might be squatting on `layout`).

[0] https://github.com/raphlinus/pulldown-cmark/blob/master/Carg...

Re: Show HN: A Graphviz Implementation in Rust

#35
post #26

Has anyone tried building a graph visualization tool based on deep learning / GPU yet?

Yeah, more-and-more I am inclining building ML project for graph visualization.

I have worked on graph visualisation for some time, did https://github.com/nikolaydubina/jsonl-graph and https://github.com/nikolaydubina/go-graph-layout

Been studying research papers on graph visualization.

It looks like we need some Deep Learning / ML based approach to this.

There is just so much meaning is encoded into XY coordinates and edges. Basic algorithms like Sugiyama produce meaningful visualizations only for simple and basic graphs.

When number of edges goes to the roof or nodes.. basic algorithms break down. Graphs become meaningless.

You have to make graphs by hand to make sense of it.

Re: Show HN: A Graphviz Implementation in Rust

#38
post #7
post #4

Does the standard implementation include any similar debug rendering? Seems like the coolest part of the project! I tend to stay away from Graphviz a lot more than I otherwise would these days due to the lack of manual formatting controls (have spent waaaayyy too many hours writing code to add invisible edges between certain nodes to force row-ordered layouts).

Hah, that's hilarious. I also like graphs but hate manually laying them out, so I always use Graphviz and live with the results. Sometimes I think I could do better, but typing "foo -> bar" a few times is so much easier than spending any time thinking about what would look nicest. One time I added colors though, that was kind of nice.

I wish it would output to graphml or something I could slightly edit with yEd or some manual tool. Does anybody have recipes for that? Or having generate some tikz simple layout and then moving on without dot? I can't say I have good memories of inkscape + dot svg output...

Re: Show HN: A Graphviz Implementation in Rust

#39
post #22
post #7

Earlier quoted context omitted.

Hah, that's hilarious. I also like graphs but hate manually laying them out, so I always use Graphviz and live with the results. Sometimes I think I could do better, but typing "foo -> bar" a few times is so much easier than spending any time thinking about what would look nicest. One time I added colors though, that was kind of nice.

yep exactly. paraphrasing something I read somewhere ... "Best to think of Graphviz as a competent but unruly teenager" and then just be glad you did not have to do the work yourself.

Heh heh.

It would probably be helpful to the community if we could add a layout plugin to allow users to specify layouts in some absolute or relative grid format, to avoid all the invisible edge and edge length hackery. We just need appropriate funding.

We have some amazing maintainers who work on gitlab.com/graphviz/graphviz now, but the think is, there are far more bug reporters than bug fixers. The first gen of Graphviz authors are timing out, so we very few people are around now to fix relatively deep semantic or logical bugs, c.f. https://xkcd.com/2347/

Best regards, Graphviz the Project

Re: Show HN: A Graphviz Implementation in Rust

#40
post #5
post #4

Does the standard implementation include any similar debug rendering? Seems like the coolest part of the project! I tend to stay away from Graphviz a lot more than I otherwise would these days due to the lack of manual formatting controls (have spent waaaayyy too many hours writing code to add invisible edges between certain nodes to force row-ordered layouts).

The standard implementation does not have debug mode. Reverse engineering GV by reading the 90's style c code is not fun either.

Sure it is
Post reply on HN