Spytial ships as a host-agnostic browser engine (spytial-core) plus a per-language integration. Pick your language; each integration has its own install, its own docs, and a host-friendly API for emitting atoms, relations, and layout specs.
| Host | Install | Badge | Docs & Repo |
|---|---|---|---|
| Python (sPyTial) | pip install spytial-diagramming |
sidprasad.github.io/spytial · github.com/sidprasad/spytial | |
| Rust (Caraspace) | cargo add caraspace |
github.com/sidprasad/caraspace · docs.rs/caraspace | |
| Pyret (Spyret) | Use the Spyret IDE | — | github.com/sidprasad/spyret-lang · spyret-ide |
A new integration is mostly an exercise in answering four design questions. See New Language Integration for the integrator's checklist.
Here are examples of visualizations from Introduction to Algorithms (CLRS), the famous algorithms book: Git Repo · Live Website.
The catalog includes BSTs, heaps, BDDs, DAG construction, Huffman trees, hash tables, and more.
The host integration is responsible for three things:
- Walking your values into atoms and relations. Python uses runtime reflection; Rust uses a
derivemacro; Pyret uses its value-skeleton machinery. - Collecting layout specs from host-native annotations. Python decorators, Rust attribute macros, Pyret output methods — they all compile to the same YAML.
- Surfacing the diagram in your host's usual workflow. A function call, a notebook cell, an editor panel.
spytial-core handles the rest in the browser: selector evaluation, constraint solving, rendering, conflict reports, sequence continuity, accessibility.