Skip to content

Kudzu 0.7.12 - Exported row reuse

Choose a tag to compare

@bunzzeok bunzzeok released this 02 Aug 04:30
· 52 commits to main since this release

Kudzu 0.7.12 lets directly exported same-file row components remain ordinary reusable source while every supported call still specializes to intrinsic DOM.

New in 0.7.12

  • Same-file keyed rows may use direct export function Row declarations.
  • Function-valued export const Row = ... declarations receive the same specialization.
  • One exported row may be reused across multiple keyed maps and ordinary static JSX sites.
  • Every discovered JSX call specializes independently; the exported declaration remains build-only and no component function or name enters browser assets.
  • Existing keyed identity, event handlers, conditions, styles, static callbacks, reorder, and removal behavior remain unchanged.
  • Non-JSX references and dynamic component aliases continue to fail with a source-located may only be referenced as JSX diagnostic.
  • Export-list and default-export aliases, exported state-backed wrappers, and exported reducer-dispatch components remain outside this direct-row fixture.

Benchmark correction (2026-08-02)

The initial cross-framework browser run used external CDP polling, which added protocol latency to short operations. Commit 2ff99a7 replaces those discarded measurements with in-page MutationObserver timing over 31 rotating fresh Chrome profiles.

  • Kudzu: edit 0.5 ms, reverse 4.2 ms, remove 1.3 ms, re-add 1.9 ms.
  • Vue CSR: 0.9 ms, 3.8 ms, 1.3 ms, 0.9 ms.
  • Svelte CSR: 0.8 ms, 20.1 ms, 1.6 ms, 1.3 ms.
  • React CSR: 2.1 ms, 7.5 ms, 2.4 ms, 1.9 ms.
  • Kudzu led edit, tied Vue on remove, and beat React and Svelte on reverse; Vue led reverse and re-add.
  • This correction changes benchmark documentation only. The published 0.7.12 package and runtime are unchanged.

See PERFORMANCE.md for environment, methodology, distributions, artifact sizes, and architecture caveats.

Boundary

This release supports direct export modifiers on same-file keyed row function declarations and function-valued constants. Every local reference must remain a JSX call, and effectful row components may still only run at keyed sites. Imported rows retain their existing default, named, aliased, and direct named re-export support.

Upgrade

npm install @kudzujs/core@^0.7.12