feat: add fabro-graphviz-sys crate with vendored Graphviz 14.1.5

Vendor the Graphviz C source code into a new fabro-graphviz-sys crate,
compiled via the cc crate. This eliminates the system dependency on the
dot binary. Pre-generated parser files (grammar.c, scan.c, htmlparse.c)
and table files (colortbl.h, entities.h) are committed alongside the
vendored source. A global Mutex serializes FFI calls to work around
Graphviz's non-thread-safe internal state.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Bryan Helmkamp 2026-04-13 22:34:50 -04:00
parent f9a8891d74
commit 0d4e4a3cbb

7
Cargo.lock generated
View file

@ -1722,6 +1722,13 @@ dependencies = [
"thiserror 2.0.18",
]
[[package]]
name = "fabro-graphviz-sys"
version = "0.176.2"
dependencies = [
"cc",
]
[[package]]
name = "fabro-hooks"
version = "0.176.2"