Benchmarks
Rezi includes a benchmark suite for checking render-path behavior across a fixed set of scenarios. The results are host-specific and directional. Use them as engineering data, not as a universal ra...
Rezi includes a benchmark suite for checking render-path behavior across a fixed set of scenarios. The results are host-specific and directional. Use them as engineering data, not as a universal ranking.
The longer reference write-up and committed artifacts live in:
What the suite covers
- primitive workloads such as startup, rerender, content updates, layout stress, and virtualized lists
- terminal-level workloads that include PTY output
- full-application workloads with structured layouts and navigation
Active comparison set
The maintained suite compares Rezi against a small set of other terminal UI runtimes and lower-level libraries:
- OpenTUI (React)
- OpenTUI (Core)
- Bubble Tea
- terminal-kit
- blessed
- Ratatui
These are not equivalent systems. Some are higher-level UI frameworks, some are lower-level terminal libraries, and some run on different runtimes or languages. Read the numbers with that context in mind.
Current reading of the results
- Rezi is designed to stay competitive on structured terminal UI workloads where layout, routing, focus, and composition are part of the cost.
- Lower-level libraries can be faster on narrow buffer-write scenarios because they do less work per frame.
- Memory and throughput vary significantly by scenario, host, and runtime.
Running the suite
Prerequisites:
npm ci
npm run build
npm run build:native
npx tsc -b packages/benchQuick run:
node --expose-gc packages/bench/dist/run.js \
--suite all --io pty --quick \
--output-dir benchmarks/local-allRezi-only quick run:
node --expose-gc packages/bench/dist/run.js \
--framework rezi-native --io pty --quickInterpretation rules
- compare runs only when the scenario, framework set, and host conditions match
- prefer repeated runs for decision-making
- treat committed benchmark files as snapshots, not promises
See BENCHMARKS.md for the fuller methodology note and artifact references.
Constraint Expressions (DSL Reference)
expr("...") is Rezi’s constraint expression escape hatch. It’s used for derived layout relationships (parent/viewport/sibling/intrinsic).
Widget API Reference
Rezi ships a built-in widget catalog. Every widget is a plain TypeScript function that returns a VNode -- the node Rezi reconciles, lays out, and renders to the terminal.