@knowvah/dot-engine 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +16 -0
  2. package/package.json +3 -1
package/README.md CHANGED
@@ -287,6 +287,22 @@ from the canonical C Graphviz. New behavior is pinned to the C source — see
287
287
 
288
288
  - **Feature coverage is incomplete.** The C source defines completeness; gaps
289
289
  are tracked in the port catalog rather than hidden.
290
+ - **Very large graphs are impractical to lay out at runtime.** Graphs beyond
291
+ roughly 10k nodes or a few MB of DOT source hit a scale ceiling — layout
292
+ (mincross, ranking, spline routing) is superlinear. This is **shared with
293
+ upstream Graphviz, not a port-specific defect**: on such inputs native `dot`,
294
+ the WASM builds (`@hpcc-js/wasm-graphviz`), and this engine all time out or
295
+ run out of memory alike (see the large-source note in
296
+ [`test/corpus/PERF.md`](test/corpus/PERF.md)). This engine does **not** leak —
297
+ its per-render heap is flat; the limit is strictly graph size.
298
+
299
+ For graphs at that scale, **pre-render to SVG once at build time and serve the
300
+ static `.svg`** rather than laying out in the browser on every view. The
301
+ build-time site adapters in
302
+ [knowvah/dot-plugins](https://github.com/knowvah/dot-plugins) (published on
303
+ NPM) do exactly this — e.g. `@knowvah/vitepress-plugin-dot`,
304
+ `@knowvah/eleventy-plugin-dot`, `@knowvah/docusaurus-plugin-dot`, and the
305
+ framework-agnostic `@knowvah/dot-markdown-it`.
290
306
 
291
307
  ## License
292
308
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowvah/dot-engine",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Faithful TypeScript port of Graphviz (dot, neato, fdp, sfdp, circo, twopi, osage, patchwork) — no C: no native binary, no WASM. Oracle-verified against the C implementation, runs in the browser.",
5
5
  "keywords": [
6
6
  "graphviz",
@@ -65,6 +65,7 @@
65
65
  "survey:gate": "tsx test/corpus/rules-gate.ts",
66
66
  "survey:dashboard": "tsx test/corpus/dashboard.ts",
67
67
  "survey:baseline": "GV_TEXT_MEASURER=lut tsx test/corpus/survey.ts",
68
+ "bench:wasm": "node --expose-gc test/corpus/wasm-bench.mjs",
68
69
  "docs:copy-reports": "node docs-site/copy-reports.mjs",
69
70
  "docs:copy-goldens": "node docs-site/copy-goldens.mjs",
70
71
  "docs:api": "typedoc",
@@ -87,6 +88,7 @@
87
88
  }
88
89
  },
89
90
  "devDependencies": {
91
+ "@hpcc-js/wasm-graphviz": "1.28.0",
90
92
  "@semantic-release/commit-analyzer": "^13.0.1",
91
93
  "@semantic-release/github": "^12.0.9",
92
94
  "@semantic-release/npm": "^13.1.5",