Skip to content

Releases: ReactiveX/RxSwift

6.0.0-rc.2

21 Nov 10:14
Compare
Choose a tag to compare
6.0.0-rc.2 Pre-release
Pre-release

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.

6.0.0 RC1

06 Oct 18:44
Compare
Choose a tag to compare
6.0.0 RC1 Pre-release
Pre-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.

Catalyst.1

26 Mar 05:17
Compare
Choose a tag to compare

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

Note:

  • 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 CHANGELOG.md

Note:

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

Catalyst

03 Mar 21:19
Compare
Choose a tag to compare

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 CHANGELOG.md

Note:

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

ShaiTheBravest

30 Apr 13:31
Compare
Choose a tag to compare
  • 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.

ShaiTheBrave

29 Apr 19:40
Compare
Choose a tag to compare

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 Completable.zip. #1929 #1931
  • RxSwift can be built as a Static Library using Carthage 0.33 and up. #1940

Anomalies

  • 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.

[4,5]

01 Apr 20:06
Compare
Choose a tag to compare
  • Compatibility with Xcode 10.2.
  • Adds missing UISearchBar.setDelegate().

Atomic.2

10 Mar 22:47
Compare
Choose a tag to compare

4.4.2

  • Adds UIView.rx.backgroundColor Binder. #1888

Anomalies

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

Atomic.1

09 Feb 16:59
a2348ce
Compare
Choose a tag to compare
  • Adds takeUntil(_ behavior:predicate:).

Anomalies

  • 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.

Atomic

02 Nov 08:11
e8aa1d8
Compare
Choose a tag to compare

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.

Anomalies

  • 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