Skip to content

ochairo/signals

Repository files navigation

⚡ signals

Fine-grained reactive primitives for building reactive applications.
No virtual DOM. No useEffect. Just pure reactivity.

npm version npm downloads bundle size CI License

Features

  • 📦 Ultra Lightweight: ~2.4KB minified
  • Automatic Tracking: Tracks dependencies automatically
  • 🔧 Framework-agnostic: Works anywhere
  • 💡 Simple: Just signal() and reactive updates

Install

pnpm add @ochairo/signals

Quick Start

import { signal } from '@ochairo/signals';

const count = signal(0);

count.value;     // Read: 0
count.set(1);    // Write: 1

Computed

const firstName = signal('John');
const lastName = signal('Doe');
const fullName = signal(() => `${firstName.value} ${lastName.value}`);

fullName.value;  // "John Doe"

Effects

const count = signal(0);

count.on((value) => {
  console.log(`Count: ${value}`);
});

count.set(1);  // Logs: "Count: 1"

Documentation



Report BugRequest Feature

Made with ❤︎ by ochairo

About

Fine-grained reactive primitives - framework-agnostic signals implementation

Resources

License

Stars

Watchers

Forks

Packages

No packages published