Dot Viewer は Graphviz の .dot および .gv ファイルを扱う macOS アプリです。スプリットペインのインターフェイス — 左にエディター、右にレンダリングされた SVG — で、入力と同時にリアルタイムで変更が反映されます。
インストール
Releases ページから最新の DMG をダウンロードしてください。アプリケーションフォルダにドラッグして起動します。アプリは Developer ID でコード署名・公証済みです。
macOS 14.0 以降が必要です。Sparkle による自動アップデート対応。
ソースからビルドする場合:
git clone https://github.com/2389-research/dot-viewer.git
cd dot-viewer
brew install xcodegen bison flex
cd dot-core && git clone --depth 1 --branch 12.2.1 https://gitlab.com/graphviz/graphviz.git graphviz-vendor && cd ..
make
機能
ライブプレビュー。 編集内容は 300ms のデバウンスで SVG にレンダリングされます。ツールバーから dot、neato、fdp、circo、twopi、sfdp の6つの Graphviz レイアウトエンジンを切り替えられます。
双方向ナビゲーション。 SVG プレビューのノードをクリックするとエディター内の定義にジャンプします。エディターのノード定義をクリックするとプレビューでハイライトされます。
エディター機能。 DOT キーワード、文字列、コメント、属性、矢印演算子のシンタックスハイライト。ブラケットマッチング、現在行ハイライト付き行番号、標準的な元に戻す/やり直し。
タブ編集。 複数の .dot/.gv ファイルをネイティブ macOS ウィンドウタブとして開けます。プレビューペインで大きなグラフをズームおよびパンできます。
エラー表示。 インラインのエラーバーが入力中に Graphviz のレンダリングエラーを表示するため、構文の問題を即座に発見できます。
仕組み
3つの層:
- dot-core(Rust)— C FFI 経由で Graphviz の cgraph と gvc ライブラリをラップします。Mozilla の UniFFI を通じてクリーンな API を公開し、コンパイルされた Rust 静的ライブラリから Swift バインディングを自動生成します。
- UniFFI ブリッジ — 境界で Rust 型と Swift 型を変換します。
- DotViewer(SwiftUI)— アプリ本体: スプリットペインエディター、SVG プレビュー、ファイル処理、タブウィンドウ。
Graphviz 12.2.1 はソースからコンパイルして静的リンクされています — システムへの Graphviz インストールは不要です。
必要要件
- macOS 14.0+
- ソースからビルドする場合: Xcode 16+、Rust ツールチェーン(
rustup)、Homebrew
