# staltz/xstream

An extremely intuitive, small, and fast functional reactive stream library for JavaScript

Repository: https://github.com/staltz/xstream
Canonical: https://ross.abutalabs.com/products/xstream
Homepage: http://staltz.github.io/xstream/
Language: TypeScript
License: MIT
License Family: permissive
Topics: reactive-programming, stream, javascript, typescript, cyclejs
Last push: 2023-07-18T20:00:00+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": 3785, "days_push": 1142, "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 2372, forks 140 (observed 2026-08-28T04:06:41.852376+00:00)

## What it is
xstream is a small, fast functional reactive stream library for JavaScript, written in TypeScript, with only 26 core operators and factories and only 'hot' streams. It is tailored for Cycle.js and applications with limited use of subscribe.

## Use cases
- compose async event streams with a minimal reactive API
- build Cycle.js applications with reactive streams
- transform and combine event streams with map, filter, merge, combine
- handle time-based streams like periodic timers
- use a lightweight alternative to RxJS for hot-stream-only apps

## When to choose
- you use Cycle.js or an architecture with few subscribe calls
- you want a tiny (~30 kB) reactive stream library with a small operator set
- you only need hot streams and prefer simplicity over RxJS's breadth

## When to avoid
- you need cold observables or RxJS's large operator ecosystem
- you need multicasting, backpressure, or advanced scheduling features
- you need a library under heavy active development

## Facets
- artifact type: library
- maturity: maintenance
- function: streaming, concurrency
- domain: web-development, frontend, developer-tools
- platform: browser, cross-platform
- tags: reactive-programming, streams, functional-reactive, cyclejs, typescript, observables, nodejs

## Member repositories
- staltz/xstream (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:41.852376+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-30T02:35:09.796653+00:00, confidence not recorded.
  - readme: https://github.com/staltz/xstream (fetched 2026-08-28T04:06:41.852376+00:00, sha 7468f05af4fd)
  - homepage: http://staltz.github.io/xstream/ (fetched 2026-08-29T10:16:26.728176+00:00, sha d96154563636)
  - registry_npm: https://registry.npmjs.org/xstream (fetched 2026-08-29T10:16:26.740063+00:00, sha 9b6ae4a8db63)
- Data as of 2026-08-30T08:39:29.467469+00:00.
