MiniGraphviz

一个用 Swift 编写的超微型 Graphviz 发射库,可作为 Swift 包使用。

主要用作我的其他 OSS 项目的依赖项。

示例用法

let viz = Graphviz()

viz.createNode(label: "node1", groups: ["Subgroup"])
viz.createNode(label: "node2", groups: ["Subgroup", "Inner Subgroup"])
viz.createNode(label: "node3", groups: ["Subgroup", "Inner Subgroup"])
viz.addConnection(
    fromLabel: "node2",
    toLabel: "node3",
    attributes: [
        "label": .string("connection label"),
        "color": .string("red"),
        "penwidth": 0.5,
    ]
)

print(viz.generateFile())

输出

digraph {
    graph [rankdir=LR]

    label = "Subgroup"

    n1 [label="node1"]

    subgraph cluster_1 {
        label = "Inner Subgroup"

        n2 [label="node2"]
        n3 [label="node3"]

        n2 -> n3 [color="red", label="connection label", penwidth=0.5]
    }
}