NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1928 most downloaded on PyPI
ReactiveX (Rx) for Python
Last release 2 months ago
27 Jul 2026
Ships unpredictably
gaps range from 1 weeks to 3.3 years
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
19 releases · first in 2022
One column per quarter.
See CHANGELOG.md for details.
See CHANGELOG.md for details.
<strong><small>View changes on Github</small></strong>
See CHANGELOG.md for details.
See CHANGELOG.md for details.
<strong><small>View changes on Github</small></strong>
See CHANGELOG.md for details.
See CHANGELOG.md for details.
<strong><small>View changes on Github</small></strong>
Typing: Added Action and StartableFactory to reactivex.typing.__all__, making them part of the explicit public API surface.
<strong><small>View changes on Github</small></strong>
Action and StartableFactory to reactivex.typing.__all__,
making them part of the explicit public API surface.on_error_resume_next operator.pairwise, to_marbles, and
delay_with_mapper (subscription-delay path). These operators now pass the
scheduler argument through to source.subscribe(...) and, in the case of
delay_with_mapper, to the subscription-delay observable, consistent with
all other pipeable operators. Closes #480 (partial — the operators listed
in the issue that were not yet fixed).tests/test_scheduler/test_mainloop/test_tkinterscheduler.py on
PyPy (all platforms). The module creates a Tk root at import time; PyPy's
_tkinter finalizer calls threading.notify_all during interpreter
shutdown and aborts the xdist worker, failing whichever unrelated test
was running. Previously guarded only on macOS+PyPy.reactivex.timer(duetime, period) now correctly resets the initial
delay on each resubscription (e.g. via repeat()). Previously nonlocal duetime in the subscribe closure mutated the shared outer variable so
subsequent subscriptions would use the stale absolute time computed by the
first subscription, causing the timer to fire immediately instead of waiting
for duetime. Fixes #697.tests/test_subject/ (added type
annotations to closure containers, callback function parameters, and narrowed None
checks). Removed tests/test_subject/ from the pyright exclude list.tests/test_scheduler/ (import ordering,
f-string upgrades, object base class removal) and removed it from the
ruff exclude list. tests/test_subject/ also removed from the ruff exclude
list as it already passed all checks.tests/test_scheduler/:
corrected @classmethod overrides of VirtualTimeScheduler.add,
fixed [None]-typed list variables, updated optional-import suppression
comments (# type: ignore[import-untyped]), narrowed callback parameter
types, and aligned ScheduledItemTestScheduler method signatures with the
Scheduler base class.actions/setup-python to @v5 across all workflow jobs.Fix title header by @dbrattli in #744
Fix deprecated calls to datetime by @ricardobranco777 in #716
Full Changelog: v4.0.4...v4.1.0
Allow any python in the 3.x series >=3.7 by @mmv in #656
fix: typing fixes for Pyright 254 by @dbrattli in #650
_T in Observable[_T] covariant by @Azureblade3808 in #654Full Changelog: v4.0.2...v4.0.3
Use deque in ReplaySubject ( #646 ) by @timothy-shields in #648
Full Changelog: v4.0.1...v4.0.2
Set daemon attribute instead of using setDaemon method that was deprecated in Python 3.10 by @tirkarthi in https://github.com/ReactiveX/RxPY/pull/570
Full Changelog: https://github.com/ReactiveX/RxPY/compare/v3.2.0...v4.0.0
rx to reactivex (pip install reactivex).Observable and operators now live at the top level
(rx.core gone).disallow_untyped_defs enforced.setup.py to Poetry._map, _filter,
etc.).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →