Skip to content

Latest commit

 

History

History
29 lines (18 loc) · 3.56 KB

File metadata and controls

29 lines (18 loc) · 3.56 KB

Integrations

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 PyPI sidprasad.github.io/spytial · github.com/sidprasad/spytial
Rust (Caraspace) cargo add caraspace crates.io github.com/sidprasad/caraspace · docs.rs/caraspace
Pyret (Spyret) Use the Spyret IDE github.com/sidprasad/spyret-lang · spyret-ide

Don't see your favorite language?

A new integration is mostly an exercise in answering four design questions. See New Language Integration for the integrator's checklist.

CLRS examples

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.

What each integration gives you

The host integration is responsible for three things:

  • Walking your values into atoms and relations. Python uses runtime reflection; Rust uses a derive macro; 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.