open-index/open-npm huggingface dataset:
npm package: @rezi-ui/core
Description: Runtime-agnostic TypeScript core for Rezi (widgets, layout, routing, drawlists, event parsing).
Latest version: 0.1.0-alpha.60

# @rezi-ui/core

Runtime-agnostic TypeScript core for Rezi:

- widget constructors (`ui.*`)
- declarative animation hooks (`useTransition`, `useSpring`, `useSequence`, `useStagger`)
- box transition props (`transition`, `opacity`)
- reconciliation + layout + focus + routing
- drawlist building (ZRDL) and event batch parsing (ZREV)

Most applications should use the Node backend package (`@rezi-ui/node`), which depends on this package.

Docs: `https://rezitui.dev/docs`
npm package: @rezi-ui/jsx
Description: JSX runtime for Rezi TUI framework.
Latest version: 0.1.0-alpha.60

# @rezi-ui/jsx

`@rezi-ui/jsx` is the native JSX runtime for Rezi. It maps JSX directly to Rezi VNodes and keeps full API parity with `ui.*()` from `@rezi-ui/core`.

## Quick Setup

Install:

```bash
npm install @rezi-ui/core @rezi-ui/jsx @rezi-ui/node
```

Configure TypeScript:

```json
{
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "@rezi-ui/jsx"
  }
}
```

## Minimal Example

```tsx
import { createNodeApp } from "@rezi-ui/node";
import { Button, Page, Panel, Text } from "@rezi-ui/jsx";

const app = createNodeApp({ initialState: { count: 0 } });

app.view((state) => (
  <Page
    p={1}
    body={
      <Panel title="Counter">
        <Text>Count: {state.count}</Text>
        <Button id="inc" label="+1" intent="primary" />
      </Panel>
    }
  />
));
```

## Component Surface

- 84 exported JSX components/functions
- 83 `ui.*()` parity components + `Fragment`

## Performance Note

The JSX layer is intentionally thin. Components delegate to core `ui.*()` factories so behavior stays consistent and overhead remains minimal.

## Documentation

- Full guide: `docs/getting-started/jsx.md`
- Package docs: `docs/packages/jsx.md`
npm package: @rezi-ui/native
Description: Native addon for Rezi (napi-rs + Zireael engine).
Latest version: 0.1.0-alpha.60

# @rezi-ui/native

Rust + `napi-rs` Node-API addon that hosts the Zireael C engine and exposes a minimal, safe JS API for the Node backend.

This package is not used directly by most applications. Install and use `@rezi-ui/node`, which depends on this package.

## Local development

Build the native addon for your host platform:

```bash
npm -w @rezi-ui/native run build:native
```

Smoke test:

```bash
npm -w @rezi-ui/native run test:native:smoke
```

Vendoring integrity check:

```bash
npm run check:native-vendor
```

## Design and constraints

- Engine placement is controlled by `@rezi-ui/node` `executionMode` (`auto` | `worker` | `inline`).
- `executionMode: "auto"` selects inline when `fpsCap <= 30`, worker otherwise.
- All buffers across the boundary are caller-owned; binary formats are validated strictly.
- Native compilation reads `packages/native/vendor/zireael` (not `vendor/zireael`).
- `packages/native/vendor/VENDOR_COMMIT.txt` must match the `vendor/zireael` gitlink commit.

See:

- [Native addon docs](../../docs/backend/native.md)
- [Releasing](../../RELEASING.md)
npm package: @rezi-ui/node
Description: Node.js/Bun backend for Rezi (worker-thread engine ownership, scheduling, IO).
Latest version: 0.1.0-alpha.60

# @rezi-ui/node

Node.js/Bun backend for Rezi. This package owns:

- configurable native engine execution mode (`auto` | `worker` | `inline`)
- frame scheduling and buffer pooling
- transfer of drawlists/events between core and the native addon

Recommended usage:

```ts
import { createNodeApp } from "@rezi-ui/node";
```

Use `createNodeApp({ initialState, config })` as the default path. It wires
`@rezi-ui/core` and `@rezi-ui/node` with matched cursor protocol, event caps,
and fps settings. `executionMode` defaults to `auto` (`fpsCap <= 30` -> inline,
otherwise worker); set `executionMode: "worker"` or `"inline"` to force a mode.

For development-time hot swapping, pass `hotReload` to `createNodeApp(...)`:
- `viewModule` for widget-view apps
- `routesModule` for route-managed apps

`app.hotReload` exposes the controller for optional manual `reloadNow()` calls.

`createNodeBackend()` is available when you need direct access to a backend
instance (benchmarks/custom runners). Most apps should use `createNodeApp()`.

Install:

```bash
npm i @rezi-ui/node
# or
bun add @rezi-ui/node
```

Docs: `https://rezitui.dev/docs`