kr-observable

Adds reactivity power for your JavaScript
87,949 33
Install
npm install kr-observable
Latest Version:3.2.5
Vue:3
License:MIT
Last Updated:Oct 8, 2026
Links: GitHub  ·  npm
Maintainer: nihilpro

Observable

Adds reactivity power to your JavaScript 😎

npm coverage size-esm size-cjs

  1. Easy to use and provides a great developer experience;
  2. Supports classes and plain objects;
  3. Supports subclassing;
  4. Works in all runtimes (Node.js, Web, e.t.c);
  5. Well typed;
  6. Framework-agnostic.

Built in bindings

Docs – observable.ru

Example with React

import { makeObservable } from 'kr-observable'
import { observer } from 'kr-observable/react'

const state = makeObservable({ count: 0 })

function App() {
  return (
    <div>
      <button onClick={() => --state.count}>-</button>
      <div>{state.count}</div>
      <button onClick={() => ++state.count}>+</button>
    </div>
  )
}
export default observer(App)

More example and full docs on observable.ru

Performance and memory usage benchmark

js-framework-benchmark

Reactivity benchmark

mol.hyoo.ru

Related Packages

reactive-route

A reactive, framework-agnostic router in 2 KB

4,166 23
@storybook/addon-contexts

Storybook Addon Contexts

816,181 91,337
exome

State manager for deeply nested states

32,780 283
@anchorlib/vue

Vue bindings for Anchor reactive state management

8,573 28
wings-feathers

A FeathersJS 4-Way reactive data sync for any frontend framework

1,728 7

Version History

Version Released License
3.2.5 MIT
3.2.4 MIT
3.2.3 MIT
3.2.2 MIT
3.2.1 MIT
Pre-releases (356)
Version Released License
3.2.0-beta.2 MIT
3.2.0-beta.1 MIT
3.1.13-beta.1 MIT
3.1.12-beta.19 MIT
3.1.12-beta.18 MIT