Skip to content

@freak4pc freak4pc released this Nov 21, 2020

RxSwift 6.0.0 RC2

This is the second and (probably) final Release Candidate of RxSwift 6.
The official 6.0.0 should be released in the upcoming weeks and should be mostly identical to this.

Note: RxSwift 6 supports Xcode 12 and Swift 5.3 and has a minimum deployment target of iOS 9.

Everything in RC1, plus:

  • Support for XCFrameworks, with binaries now bundled with each release.
  • Updated tests for new Infallible trait.
  • Fix an issue building for watchOS.
  • Move URLSession logging settings to a more appropriate URLSession.rx.shouldLogRequest configurable closure.
  • README, CI, and additional house cleaning.
Assets 7

@freak4pc freak4pc released this Oct 6, 2020 · 10 commits to main since this release

RxSwift 6.0.0 RC1

This is the first Release Candidate of RxSwift 6.

Note: RxSwift 6 supports Xcode 12 and Swift 5.3 and has a minimum deployment target of iOS 9.

  • All ReactiveCompatible objects (.rx namespace) get Binders for all properties for free using @dynamicMemberLookup.
  • New Infallible object which is identical to Observable with the guarantee of never failing.
  • Add variadic drive() and emit() to multiple observers and relays.
  • New decode(type:decoder:) operator for ObsrvableTypes of Data.
  • SingleEvent is now simply Result<Element, Swift.Error> and methods changed accordingly (e.g. subscribe(onSuccess:onFailure:)).
  • Add ReplayRelay.
  • Add distinctUntilChanged(at keyPath:).
  • Add UIApplication Reactive extensions .
  • Rename catchError(_:) to catch(_:).
  • Rename catchErrorJustReturn(_:) to catchAndReturn(_:).
  • Rename elementAt(_:) to element(at:).
  • Rename retryWhen(_:) to retry(when:).
  • Rename takeUntil(_:) to take(until:) and takeUntil(behavior:_:) to take(until:behavior:).
  • Rename takeWhile(_:) to take(while:) and takeWhile(behavior:_:) to take(while:behavior:).
  • Rename take(_:) duration overload to take(for:) (e.g. take(for: .seconds(3))).
  • Rename skipWhile(_:) to skip(while:).
  • Rename takeUntil(_:) to take(until:).
  • Rename observeOn and subscribeOn to observe(on:) and subscribe(on:).
  • ignoreElements() now returns Observable<Never>.
  • Make SharedSequence conform to ObservableConvertibleType.
  • Add onDisposed to Maybe, Completable and Single.
  • Unify and optimize swizzling extensions into a single one.
  • Add DisposeBag function builder to allow easy comma-less initialization of a DisposeBag.
  • Advance support of xcframeworks by enabling BUILD_LIBRARY_FOR_DISTRIBUTION and cleaning up.
  • Many, many, many quality of life bugs and fixes.
Assets 2

@freak4pc freak4pc released this Mar 26, 2020

This update is mandatory if you want to use RxSwift in Xcode 11.4 / Swift 5.2 on macOS.

  • Make NSTextView not weak for Swift 5.2 and up. #2125
  • Add WKWebView navigation delegate reactive extensions. #2144


  • The pre-built Carthage binary was built using Xcode 11.4 / Swift 5.2
  • We no longer guarantee support for Xcode 10.x. Maintaining these is counter-intuitive as they're over a year old and are ridden with bugs.

Other improvements and additions can be found in the project's


The pre-built Carthage binary was built using Xcode 11.4.1 / Swift 5.2.2

Assets 3

@freak4pc freak4pc released this Mar 3, 2020

This release removes UIWebView Reactive Extensions due to Apple's hard deprecation, starting April 2020 which also allows RxSwift to be used in Catalyst apps. #2062

Other improvements and additions can be found in the project's


The pre-built Carthage binary was built using Xcode 11.3.1 / Swift 5.1.3

Assets 3

@kzaher kzaher released this Apr 30, 2019

  • Reverts Carthage integration from using static to dynamic libraries. #1960

NOTE: This release is only relevant to Carthage users (#1960), there are no code changes between RxSwift 5.0.0 and 5.0.1.

Assets 3

@kzaher kzaher released this Apr 29, 2019

RxSwift 5 is a mostly source-compatible release targeting the Swift 5 compiler.

Xcode 10.2 is the minimum supported version (or Swift 5 on Linux).

If you're using Xcode 10.1 and below, please use RxSwift 4.5.

  • Relays have been moved to a separate framework - RxRelay, and can be used without RxCocoa. #1924
  • TimeInterval has been deprecated in favor of DispatchTimeInterval. For example - throttle(1.2) would change to throttle(.milliseconds(1200)), while throttle(3) would change to throttle(.seconds(3)). #1472
  • Variable is now entirely deprecated. #1922
  • do now provides additional "after" closures. For example, do(onNext:) and do(afterNext:). #1898
  • bind(to:) now supports multiple observers (e.g. bind(to: observer1, observer2)). #1702
  • Changes the return type of ObservableType.toArray to Single. #1923
  • Adds compactMap. #1925
  • Deprecate Completable.merge in favor of #1929 #1931
  • RxSwift can be built as a Static Library using Carthage 0.33 and up. #1940


  • SubjectType.SubjectObserverType has been renamed to SubjectType.Observer. #1950
  • The S associated type has been renamed to Subject where applicable. #1950
  • The S generic constraint on SharedSequence has been renamed to SharingStrategy. #1951
  • The E associated type on ObservableConvertibleType and ObserverType have been renamed to Element. #1945
  • The C and S associated types have been renamed to Collection and Sequence accordingly. #1949
  • Renamed ElementType associatedtype to Element. #1945
  • Renamed TraitType associatedtype to Trait. #1945
  • Make RxMutableBox supported on Linux in Swift 5. #1917
  • Fix incorrect assignment to Thread.threadDictionary on Linux. #1912
  • combineLatest of an empty array now completes immediately. #1879
  • Add resultsSelector missing closure labels for some overloads of combineLatest & zip.
Assets 3

@kzaher kzaher released this Apr 1, 2019

  • Compatibility with Xcode 10.2.
  • Adds missing UISearchBar.setDelegate().
Assets 3

@kzaher kzaher released this Mar 10, 2019


  • Adds UIView.rx.backgroundColor Binder. #1888


  • Fix multiple disposes on ScheduledDisposables. #1892
  • Fix DelegateProxy main thread validation. #1882
  • Bring back the first operator to ObservableType. #1886
Assets 3

@kzaher kzaher released this Feb 9, 2019

  • Adds takeUntil(_ behavior:predicate:).


  • Fixes problems with RxAtomic and thread sanitizer. #1853
  • Fixes problem with passing 0 count to Observable.range. #1870
  • Fixes Swift 5.0 warnings. #1859
  • Fixes problem with RxCocoa and DISABLE_SWIZZLING flag. #1805
  • Internal cleanups:
    • Unused code deletions.
    • Adds SwiftLint.
    • Removes legacy Swift 3.0 conditional compilation flags.
Assets 3

@kzaher kzaher released this Nov 2, 2018

This relase introduces new framework RxAtomic that enables using C11 atomic primities in RxSwift as a replacement for deprecated OSAtomic* functions.
Carthage users will probably need to include this framework manually.

  • Updates deprecated OSAtomic* primitives to use C11 atomic primitives.
  • Adds Event, SingleEvent, MaybeEvent and Recorded conditional conformance to Equatable where their Element is equatable on RXTest for clients that are using Swift >= 4.1.
  • Adds string to NSTextView.
  • Consolidates per platform frameworks to multi-platform frameworks.
  • Xcode 10.1 compatible.


  • Fixes problem with canceling events scheduled on serial scheduler through observeOn operator. #1778
  • Fixes problem with UISearchBar.text property not triggering update when cancel button is tapped. #1714
  • Updates watchos minimum target to 3.0. #1752
Assets 3
You can’t perform that action at this time.