Skip to main content
This is step 1 of 5. By the end of the series you’ll have a real iso architecture diagram in your repo. iso-topology is a single Go binary plus an importable Go library. No runtime dependencies beyond what the Go toolchain provides — all external libraries (yaml, d2, freetype, …) are pure Go and statically linked into the binary.

Requirements

  • Go 1.25 or later (older versions may work but aren’t tested)
  • macOS, Linux, or Windows
  • No CGO, no C compiler, no system fonts required

Which version to install

These docs track main. Install @main to use the current documented feature set, or @latest for the newest tagged release. Releases can lag behind main. The Go module path remains github.com/MarkovWangRR/iso-topology, even though the repository now lives at MishaBear94/iso-topology.

Three install paths

This builds and installs the isotopo binary into $GOBIN ($HOME/go/bin by default). Make sure that’s on your PATH:
Verify:
To pin to a specific release:

B. Clone & build (for hacking on the renderer)

Run the test suite:
The suite checks sample SVG fixtures, layout, routing, editing, and export behavior. Runtime depends on the machine and available cache.

C. Library import (use as a Go module)

In another Go project:
See the API reference for the full library API surface.

Dependency note: d2

.d2 input support pulls in oss.terrastruct.com/d2 v0.7.1 (pinned). The d2 module is pure Go too — go install or go build will fetch it transparently from the public module proxy. Nothing else to do. If you need to track d2 HEAD for local development:

Verifying the install

Uninstall

The Go module cache for d2 / dependencies lives under $GOPATH/pkg/mod/; cleaning that is optional (go clean -modcache).

Next step

→ 02-first-scene.md — render your first multi-element architecture diagram.