# kefirjs/kefir

A Reactive Programming library for JavaScript

Repository: https://github.com/kefirjs/kefir
Canonical: https://ross.abutalabs.com/products/kefir
Homepage: https://kefirjs.github.io/kefir/
Language: JavaScript
License: MIT
License Family: permissive
Topics: frp, reactive, stream, functional-programming, observable, javascript, kefir
Last push: 2024-06-20T00:40:05+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 4504, "days_push": 805, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1885, forks 95 (observed 2026-08-28T04:05:49.007324+00:00)

## What it is
Kefir is a lightweight Reactive Programming library for JavaScript, inspired by Bacon.js and RxJS, offering observable streams and properties for composing asynchronous events. It focuses on high performance and low memory usage and ships with Flow type definitions.

## Use cases
- handle asynchronous events as composable observable streams in javascript
- find a lighter alternative to rxjs for reactive programming
- compose dom events, promises, and callbacks with operators like debounce, throttle, and flatMap
- model ui state as observable properties in a frontend app
- combine and filter multiple event streams with zip, merge, and combine

## When to choose
- you want RxJS-style observables with a small footprint and low memory usage
- you need a rich set of stream and property combinators in plain JavaScript without a framework
- you use Flow and want typed observables out of the box

## When to avoid
- your project already uses RxJS and depends on its large operator ecosystem and interop
- you need a library under active feature development, since Kefir is essentially feature-complete
- your team uses TypeScript rather than Flow and requires official TS typings

## Facets
- artifact type: library
- maturity: maintenance
- function: streaming, state-management
- domain: web-development, frontend, developer-tools
- platform: browser, cross-platform
- tags: reactive-programming, frp, event-streams, observables, functional-programming, rxjs-alternative, baconjs-alternative, flow-typing, javascript, nodejs

## Member repositories
- kefirjs/kefir (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:49.007324+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:13:36.717449+00:00, confidence not recorded.
  - readme: https://github.com/kefirjs/kefir (fetched 2026-08-28T04:05:49.007324+00:00, sha d188f9ef3143)
  - homepage: https://kefirjs.github.io/kefir/ (fetched 2026-08-29T10:52:52.761910+00:00, sha 3e38470739e0)
  - registry_npm: https://registry.npmjs.org/kefir (fetched 2026-08-29T10:52:52.772398+00:00, sha c90db3e2d47a)
- Data as of 2026-08-30T08:39:29.467469+00:00.
