#graph #dot #graphviz #directed-graph #dag #parse #parser

graphviz-rs

一种用于解析 dot 格式有向图的解析器,与 Graphviz cgraph 库的 FFI 相结合

2 个不稳定版本

0.2.0 2023年10月11日
0.1.0 2023年3月10日

#1934解析器实现


用于 dot-viewer

MIT 许可证

39KB
917

dot-graph

使用 FFI 与 Graphviz cgraph 库结合实现的 Rust 中的 dot 解析器。

先决条件

dot-graph 使用 C 绑定解析 dot 格式文件,使用 Graphviz (v7.0.6)

系统环境应能够找到并包含以下头文件。

#include <gvc.h>
#include <cgraph.h>

选项 1. 从软件包管理器安装 Graphviz

从 Linux 来

$ sudo apt install graphviz-dev

以及从原版 Ubuntu 来,你可能还想安装这些。

$ sudo apt install build-essentials cmake
$ sudo apt install clang

从 Mac 来

$ brew install graphviz

以及从 Apple Silicon Mac 来,并且 添加一个环境变量

export CPATH=/opt/homebrew/include

选项 2. 从源代码构建 Graphviz

或者,尝试按照 指南 从源代码构建。

用法

use dot_graph::prelude::*;

fn main() -> Result<(), DotGraphError> {
  /* parse from file */
  let graph = parser::parse_from_file(/* path */)?;
  let mut stdout = std::io::stdout();
  graph.to_dot(&mut stdout)?;

  /* parse from memory */
  let graph = parser::parse_from_memory(/* dot file contents in memory */)?;
  let mut stdout = std::io::stdout();
  graph.to_dot(&mut stdout)?;
  
  Ok(())
}

依赖项

~3–10MB
~104K SLoC