6 releases

0.2.3 Apr 20, 2023
0.2.2 Apr 20, 2023
0.1.1 Feb 4, 2023

#58 in Data formats

GPL-3.0 license

34KB
931 lines

CI docs.rs Crates.io PyPI

xdot

The main function of this package is parse. It parses node/edge attributes on graphviz graphs created by xdot into drawable shapes.

use xdot::{parse, ShapeDraw};
let shapes: Vec<ShapeDraw> = parse("c 7 -#ff0000 p 4 4 4 36 4 36 36 4 36");

Each ShapeDraw struct contains a shape with geometry and a pen with drawing attributes (such as color, line style, and font). If you have the layout feature active, you can also use layout_and_draw_graph (and draw_graph):

use graphviz_rust::parse;
use graphviz_rust::dot_structures::Graph;
use xdot::{layout_and_draw_graph, ShapeDraw};

let graph: Graph = parse("graph { a -- b}").unwrap();
let shapes: Vec<ShapeDraw> = layout_and_draw_graph(graph).unwrap();

Release process

  1. A commit to main causes creation or update of a release PR. (release workflow)
  2. Merging a release PR causes the creation of a Git tag and GitHub release, and the upload of a Rust crate to crates.io.(also release workflow)
  3. Publishing this GitHub release in turn triggers building and uploading a Python package. (publish workflow)

Dependencies

~3–12MB
~165K SLoC