MCPcopy Index your code
hub / github.com/azriel91/dot_ix

github.com/azriel91/dot_ix @0.10.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.10.0 ↗ · + Follow
602 symbols 960 edges 86 files 198 documented · 33%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

✒️ dot_ix

Crates.io docs.rs CI Coverage Status

🚧 This is very much a work in progress

Try it yourself: (demo_1, demo_2)

Example

Original Concept

https://user-images.githubusercontent.com/2993230/253878816-0729970f-651f-45ef-a986-470f383b8018.mp4

Usage

Add the following to Cargo.toml

dot_ix = "0.10.0"

# Enables the `FlexDiag` web component.
dot_ix = { version = "0.10.0", features = ["flex_diag"] }

Development

cargo install cargo-leptos

# Then, one of:
# * client side rendering -- uses WASM compiled graphviz to generate the graph.
cargo leptos watch

To Do

🦜 Feel free to do any of these -- this project isn't my main focus, but I should be responsive in reviewing / merging things.

  • [x] Split crate into multiple subcrates.
  • [ ] Split app::info_graph::InfoGraph into smaller components.
  • [x] Get rid of main.scss and replace with tailwind classes.
  • [x] Inline styles in SVG.
  • [x] Inline font in SVG styles.
  • [ ] Change rt/into_graphviz_dot_src/info_graph.rs to write to a buffer, instead of individual strings.
  • [ ] Take each node with a "type".
  • [x] Take in tailwindcss classes to attach to node types.
  • [x] Take in theme / merge with default theme.
  • [x] Split dot_ix library from the web app, so it can be embedded in other apps.
  • [x] GitHub Actions / automated testing / releasing / publishing.
  • [x] Playground: Render pre-written graphs
    • [x] Graph in URL
    • [ ] Link to gist

Extension points exported contracts — how you extend this code

Themeable (Interface)
Types that can be rendered into a CSS compatible format, e.g. SVG or HTML elements. [2 implementers]
crate/model/src/theme/themeable.rs
IntoGraphvizDotSrc (Interface)
Generates GraphViz Dot source that can be rendered using `dot`. [1 implementers]
crate/rt/src/into_graphviz_dot_src.rs

Core symbols most depended-on inside this repo

into
called by 50
crate/rt/src/into_graphviz_dot_src/info_graph.rs
append
called by 18
crate/model/src/theme/css_classes_builder.rs
ensure_valid_id
called by 12
crate/static_check_macros/src/lib.rs
as_ref
called by 9
crate/model/src/theme/css_classes.rs
attr_value_find
called by 7
crate/model/src/theme/css_class_merger.rs
into_inner
called by 7
crate/model/src/common/edges.rs
build
called by 6
crate/model/src/theme/css_classes_builder.rs
el_color_classes
called by 6
crate/rt/src/info_graph_html.rs

Shape

Method 402
Function 128
Class 54
Enum 16
Interface 2

Languages

Rust89%
TypeScript11%

Modules by API surface

crate/web_components/public/js/leader-line.min.js63 symbols
crate/model/src/theme/css_class_merger.rs40 symbols
crate/model/src/info_graph.rs38 symbols
crate/model/src/common/graphviz_attrs.rs37 symbols
crate/model/src/common/graphviz_dot_theme.rs26 symbols
crate/model/src/theme.rs20 symbols
crate/rt/src/info_graph_dot.rs16 symbols
crate/static_check_macros/src/lib.rs14 symbols
crate/rt/src/into_graphviz_dot_src/info_graph.rs14 symbols
crate/rt/src/info_graph_html.rs13 symbols
crate/model/src/theme/el_css_classes.rs9 symbols
crate/model/src/theme/theme_warnings.rs8 symbols

For agents

$ claude mcp add dot_ix \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page