Skip to content

Releases: joshburgess/static-dom

v0.1.0

06 May 05:21

Choose a tag to compare

Initial public release. Six packages on npm under the @static-dom org.

Packages

  • @static-dom/core — runtime, optics, JSX runtime, hyperscript / htm / html, Program
  • @static-dom/vdom — opt-in virtual-DOM boundary backed by Tachys (~11KB gzipped)
  • @static-dom/react — React adapter (SDOMBoundary, useSDOMBoundary)
  • @static-dom/vite — Vite plugin (sdomJsx) plus build-time codegen (sdomCodegen) that hoists statically-resolvable JSX templates to module scope. CSP-clean.
  • @static-dom/esbuild — esbuild plugin and config helpers
  • @static-dom/eslint — ESLint plugin with the sdom/no-dynamic-children rule

Highlights

  • Static DOM runtime: mount once, update leaves directly, no diff
  • Structural primitives: Show, Optional, For, match, dynamic
  • Reconciler: keyed array() / arrayBy() with same-structure, append-only, and full-replace fast paths plus LIS-based reorder
  • incrementalArray() and programWithDelta for O(1) keyed deltas
  • Optics suite (Lens, Prism, AffineTraversal, Traversal, Iso, Getter, Fold, Setter, Review) with path-based composition
  • Authoring styles: JSX runtime, hyperscript, htm tagged templates, raw HTML
  • Template cloning compiler enabled by default for JSX/h/html/htm
  • Program, ports, and subscriptions for Elm Architecture-style applications
  • Incremental computation graph as the reactive substrate: Cell, Var, mapCell / mapCell2 / mapCell3, bindCell, batch, stabilize with topo-height scheduling, per-cell cutoff, and observer-driven GC
  • Optic lifting over the graph: liftLens, liftGetter, liftPrism, liftAffine, liftFold, focusVar, bindPrism
  • Cell-first program runners attachToCell and programFromVar

Dual licensed under Apache-2.0 OR MIT.

See CHANGELOG.md and BENCHMARKS.md for details.