Kudzu 0.7.12 - Exported row reuse
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 Rowdeclarations. - 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 JSXdiagnostic. - 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