How it works
Bind an expression to your model. rs-x builds dependencies and re-evaluates on identifier changes.
See how it worksStrongly typed, declarative reactivity for runtime-bound expressions. Bind an expression to a model, and RS-X automatically tracks fine-grained dependencies.
Works with modern SPA frameworks: React, Vue, and Angular. Pairs naturally with RxJS for streams and reactive state. Ideal for apps that need fast change detection and predictable reactive updates in TypeScript and JavaScript. Also works great in Node.js services.
Bind an expression to your model. rs-x builds dependencies and re-evaluates on identifier changes.
See how it worksLearn the engine, binding, change propagation, and debugging tools.
Read the DocsTry expressions live and see updates as your model changes, with expression tree visualization.
Open Playgroundrs-x expressions are not just runtime strings. The VS Code extension gives you IDE support directly in expression strings, and the compiler validates and optimizes them at build time.
The rs-x VS Code extension brings full IntelliSense to your expression strings. Identifiers are resolved against your model type, and invalid expressions are underlined in the editor — no runtime surprises.
VS Code extensionThe rs-x compiler pre-compiles expressions into optimised JavaScript, eliminating parse overhead at runtime. It also catches type errors and invalid identifiers during your build — before they reach users.
Learn about the compilerrs-x delivers fine-grained change detection across React, Next.js, Vue, and Angular, while pairing naturally with RxJS and Node.js — ideal for SPA frameworks and backend services that need precise, type-safe updates.
Use RS-X hooks to bind expressions directly in React components with minimal boilerplate.
React integrationIntegrate rs-x into Next.js client components with the same expression hooks used in React, plus app-router-friendly setup guidance.
Next.js integrationLeverage the @rs-x/vue composable for reactive expressions and clean change detection in Vue apps.
Vue integrationBind expressions with the rsx pipe and keep Angular templates reactive and predictable.
Angular integrationCombine rxjs streams with rs-x expressions for reactive data flows and efficient updates.
RxJS integrationUse rs-x in Node.js services for reactive data pipelines, model binding, and predictable change propagation.
Node.js setupBind expressions to a model and rs-x builds a fine-grained dependency graph. Only identifiers read by the expression become reactive.
Your model is just normal JavaScript.
{ price: 100, quantity: 2 }Expressions are declarative strings. Binding registers dependencies for what the expression reads.
rsx('price * quantity')(model)When the model changes, the expression updates and emits changes.
expression.changed.subscribe(() => { /* … */ })