Skip to content

Packages ​

Rasen is a monorepo: the paradigm lives in @rasenjs/core, and everything else is a reactive-runtime adapter or a render target.

Framework ​

PackageVersionWhat it is
@rasenjs/corenpmThe Mountable contract, structural components (each, when, match, show, lazy, fragment), the reactive-runtime boundary and the host-agnostic JSX runtime
@rasenjs/compilerin repoJSX transform, static hoisting, structural rewrites and HMR — one plugin for Vite/webpack/Rspack/esbuild plus a Babel adapter for Metro
@rasenjs/domnpmDOM renderer: element factories, bindings, hydration, compiled templates
@rasenjs/htmlnpmHTML string renderer for SSR/SSG
@rasenjs/webnpmIsomorphic bundle: DOM in the browser, HTML on the server — same imports

Routing ​

PackageVersionWhat it is
@rasenjs/routernpmHeadless router: typed route trees, params, guards, history adapters
@rasenjs/router-domnpm<a>-based link, DOM RouterView, scroll restoration, layout
@rasenjs/router-htmlnpmThe same components for the SSR string host

Reactivity adapters ​

PackageVersionReactivity system
@rasenjs/reactive-vuenpm@vue/reactivity
@rasenjs/reactive-signalsnpmTC39 Signals (signal-polyfill)
@rasenjs/reactive-nanostoresnpmnanostores
@rasenjs/reactive-alien-signalsin repoalien-signals (the signal core Vue Language Tools uses)

@rasenjs/core also ships a zero-dependency built-in runtime, so no adapter is required to get started.

Render targets ​

PackageVersionTarget
@rasenjs/canvas-2dnpmCanvas 2D shapes, text, paths, sprites, groups
@rasenjs/rn-domnpmDOM-like document abstraction over React Native's Fabric pipeline
@rasenjs/react-nativein repoReact Native components on top of rn-dom (no React)
@rasenjs/gfxin repoWebGL/WebGPU renderer sharing canvas-2d's shape API
@rasenjs/gpuiin repoNative desktop through Zed's GPUI
@rasenjs/lvglin repoEmbedded displays (LVGL + QuickJS)
@rasenjs/lynxin repoLynx main-thread rendering

Utilities ​

PackageVersionWhat it is
@rasenjs/twin repoTailwind-style class strings → style records
@rasenjs/rotain repoHeadless UI component library (dialogs, popovers, menus, …)
@rasenjs/animationnpmTween, spring and frame animations as refs
@rasenjs/mathin repoVec2/3/4f, Mat3x3f, Mat4x4f, Quatf
@rasenjs/assetsin repoSpine and glTF/GLB parsing, image loading via a host adapter
@rasenjs/compiler/babelin repoBabel plugin for Metro / any Babel pipeline

Release status ​

Packages marked with an npm badge are published (all of them are alpha — APIs can still change before 1.0). The rest live in the repository until the next release; install them with your package manager's workspace/link support or build them from source.

The canonical example of everything working together is templates/rasen-ts: SSR + hydration, isomorphic routing, signals and the compiler.

Released under the MIT License.