Sairin
Sairin is a fine‑grained reactive UI framework built around a virtual filesystem model. Every piece of state lives at a path, and reactivity flows through those paths like a living directory tree.
Sairin means “reappearance” or “return” in Japanese: a familiar cycle coming back in a clearer form. The engine mirrors that idea, renewing your application’s reactive flow with clarity and precision.
Features
Every signal lives at a path like /user/name. Subscribe to namespaces and get notified on any child change.
Only exactly what changes gets updated. No Virtual DOM, no re-renders, no diffing.
Sync, microtask, and idle effects. Pick the right tier for the job.
Incremental cleanup, effect pooling, and retained memory caps. Built for long-running apps.
Signals, effects, and stores live at paths. Structure your app like a directory tree and let reactivity flow through it.
Quick Example
import { signal, effect, path } from 'sairin';
const count = signal(path("counter", "value"), 0);
effect(() => {
console.log("Count is now:", count.get());
});
count.set(1); // Logs: "Count is now: 1"
Installation
npm install @nisoku/sairin
Next Steps
- Quick Start: Get up and running in minutes
- Configuration: Lock behavior and logging
- Path System: Paths, globs, and aliases
- Signals: Creating and using signals
- Effects: Running code when signals change
- API Reference: Complete API documentation