import GraphViz
var graph = Graph(directed: true)
let a = Node("a"), b = Node("b"), c = Node("c")
graph.append(Edge(from: a, to: b))
graph.append(Edge(from: a, to: c))
var b_c = Edge(from: b, to: c)
b_c.constraint = false
graph.append(b_c)
// Render image to SVG using dot layout algorithm
graph.render(using: .dot, to: .svg) { result in
guard .success(let data) = result,
let svg = String(data: data, encoding: .utf8)
else { return }
print(svg)
}
digraph {
a -> b
a -> c
b -> c [constraint=false]
}
Note:
render(using:to:) and related methods require
GraphViz to be installed on your system.
Using Function Builders, Custom Operators, and Fluent Attribute Setters
import GraphViz
let graph = Graph(directed: true) {
"a" --> "b"
"a" --> "c"
("b" --> "c").constraint(false)
}
Note:
Swift 5.1 may require explicit typecast expressions in order to
reconcile use of custom edge operators like -->.
(error: ambiguous reference to member '-->')
Installation
System Dependencies
You can install GraphViz on your system by running the following command:
GraphViz
A Swift package for working with GraphViz.
Requirements
Usage
Using Function Builders, Custom Operators, and Fluent Attribute Setters
Installation
System Dependencies
You can install GraphViz on your system by running the following command:
Swift Package Manager
Add the GraphViz package to your target dependencies in
Package.swift
:Add
GraphViz
as a dependency to your target(s):License
MIT
Contact
Mattt (@mattt)