Graph description languages like DOT, often produce output that is close to good, but they can be difficult to tweak and style. WYSIWYG graph editors are great for getting the perfect style, but they make automated graph generation difficult.
The goal of this project is to provide the best of both worlds by allowing users to import a graph via a graph description language, edit it in a WYSIWYG GUI, and export them back to the graph description language.
The first Graph Description Language (GDL) we will support is DOT. It is widely used and has several Rust implementations. We're using egui for it's ease of use and flexibility, it runs both natively and on the web. I'm using egui_snarl, for the node graph drawing library. I choose it over egui_graphs because the latter seemed more oriented toward large scale 3D data visualizations of graphs.
For just basic graphs:
- Parse DOT graphs and render them
- Basic editing: move nodes
- Export to DOT
- Convert project to a Rust library
- Edit arbitrary node style attributes
- Directed and undirected connections
- Add nodes
- Support subgraphs
- Support Mermaid Diagrams
$ cargo run