rxjs README

The project's README from github.com/ReactiveX/rxjs. As one markdown file: README.md.

RxJS

CI Release readiness Observable WPT npm stable npm next npm downloads Apache 2.0

Observable: platform native Extensions: Symbol keyed

RxJS is a library for composing asynchronous and event-based programs with Observable values. This repository contains the platform-based next generation of RxJS, planned for release as RxJS 9.

RxJS 9 is prerelease work in development. The planned first beta is 9.0.0-beta.0, but it has not been published to npm yet. The next tag still points to the earlier RxJS 8 prerelease, while RxJS 7 remains the production latest line and continues to be maintained.

Why RxJS 9? What happened to RxJS 8?

RxJS 8 was real work, not a skipped release. Development began years ago and was paused while the Web Platform Observable proposal was finalized. The new implementation is a platform-based generation rather than a continuation of that paused RxJS 8 branch, so it starts at version 9 to make the architectural break unmistakable and avoid presenting the old RxJS 8 work as the released product.

What is different in RxJS 9?

Preview the RxJS 9 API

The following example shows the planned beta API. Until 9.0.0-beta.0 is published, do not use npm's next tag to install RxJS 9.

import { ColdObservable } from 'rxjs';
import { map } from 'rxjs/map';

const source = new ColdObservable<number>((subscriber) => {
  subscriber.next(1);
  subscriber.next(2);
  subscriber.complete();
});

source[map]((value) => value * 2).subscribe(console.log);

Import the Symbol and call it with bracket syntax. A platform method such as observable.map(project) remains the platform contract; observable[map](project) is the separately versioned RxJS contract.

Packages and documentation

Package Purpose Documentation
rxjs Symbol extensions and intentional RxJS primitives Package guide · API · RxJS 7 migration
@rxjs/observable-polyfill Conditional platform Observable fallback Package guide
@rxjs/test Implementation-neutral virtual-time and marble testing Package guide
@rxjs/migrate Deterministic migration engine and canonical agent Skill Package guide

Release support, budgets, and exact environment gates are documented in the rxjs package. The irreversible npm publication process is the public secure release runbook. The RxJS 9 security-assurance document explains the release evidence, verification commands, sole-maintainer model, and OpenSSF Scorecard in context. Repository-wide design records live in docs/rxjs-next.

Supported environments

The planned beta supports Node 22.13+ and Node 24 as blocking lanes, with Node 26 in an advisory lane. Current Chrome, Firefox, desktop Safari, Mobile Safari, Deno, Bun, and Webpack 5 are blocking. Every supported consumer receives the same ESM implementation, so Deno and Bun support adds no runtime-specific package or application-bundle code.

Contributing

Requires Node 22.13+ and pnpm 10.34.5. Run commands from the repository root.

pnpm install
pnpm --filter rxjs exec vitest --run src
pnpm --filter rxjs run test:package
pnpm run release:check

Start with the repository contribution guide and the rxjs package contribution guide. The active execution queue is PROJECT_PLAN.md.

The complete source-pinned RxJS 7 corpus intentionally retains reviewed lifecycle and compatibility divergences, so it is migration evidence rather than a blanket RxJS 9 compatibility gate. Focused source, package, runtime, browser, performance, and WPT commands are the release gates.

Community and governance

rxjs (ReactiveX/rxjs)

Searching Database…

31.7K ·GitHub
Что это такое?RxJS — это JavaScript-библиотека для построения асинхронных программ и программ, основанных на событиях, с использованием Observable-значений. Этот репозиторий — новое поколение RxJS на базе веб-платформы, которое планируется выпустить как RxJS 9.
Сборка CommonJS ещё есть, или теперь только ESM?Дублирующей сборки CommonJS нет: публикуемый JavaScript — только ESM, а современные версии Node умеют соединять require() с теми же ESM-файлами.
Так как мне его заполучить?Для приложений оставайтесь на RxJS 7 — стабильной рабочей линейке — и не используйте npm-тег next, пока не выйдет 9.0.0-beta.0. Чтобы собрать проект или внести вклад в этот репозиторий, нужны Node 22.13+ и pnpm 10.34.5, а команды выполняются из корня репозитория.
Это та версия, которую мне стоит использовать в продакшене прямо сейчас?Нет. RxJS 9 — черновая версия в разработке: запланированная первая бета (9.0.0-beta.0) на npm ещё не появилась, тег next по-прежнему указывает на старую prerelease-версию RxJS 8, а RxJS 7 остаётся поддерживаемой стабильной линейкой для продакшена.
Так что же реально изменилось в RxJS 9?Она использует нативный Observable из веб-платформы, если окружение его предоставляет, и устанавливает соответствующий стандартам фолбэк только при необходимости. Операторы и фабрики — это Symbol'ы, принадлежащие конкретным модулям, которые вызываются через квадратные скобки вместо платформенных методов со строковыми именами, а отмена действий построена на AbortSignal.
Какие пакеты входят в этот репозиторий?Четыре: rxjs (расширения через Symbol и специально отобранные примитивы RxJS), @rxjs/observable-polyfill (условный фолбэк платформенного Observable), @rxjs/test (не зависящее от реализации тестирование с виртуальным временем и marble-тестами) и @rxjs/migrate (детерминированный движок миграции с каноническим агентским Skill).
Почему версия перескакивает с 7 сразу на 9 — а куда делась RxJS 8?RxJS 8 — это была настоящая работа, но разработку приостановили, пока финализировали предложение Observable для веб-платформы. Новая линейка — это поколение, построенное на платформе, а не продолжение той ветки, поэтому она стартует с 9, чтобы смена архитектуры была очевидной с первого взгляда.
Могу ли я перенести существующий проект на RxJS 7 на версию 9?Есть специальный инструмент: @rxjs/migrate — детерминированный движок миграции. Но ожидайте реальных различий: в сохранённом коде RxJS 7 намеренно оставлены проверенные расхождения в жизненном цикле и совместимости, так что это скорее материал для миграции, чем универсальный гарант совместимости.
What are similar projects?RxJS, cyclejs, es-toolkit, vueuse, router, comlink, marked, core-js
Creator
ReactiveX
Size
52.1 MB
Stars
31.7K
Updated
CommitAug 05
Age
11y
Commits · 90 Days