Releases: ReactiveX/RxSwift
Atlas
RxSwift 6.5.0 - Swift Concurrency is here! 🎊 💯
You can now use await
on Observable
-conforming objects (as well as Driver
, Signal
, Infallible
, Single
, Completable
) using the following syntax:
do {
for try await value in observable.values {
print(value) // Next event
}
// Completed here
} catch {
// Error event
print("An error occurred:", error.localizedDescription)
}
Check out the full documentation for additional information: https://github.com/ReactiveX/RxSwift/blob/main/Documentation/SwiftConcurrency.md
Ethan.2
5.Throwback
RxSwift 5.1.3 is a patch release to provide support for Xcode 12.5 for those who are still using RxSwift 5.x.
We recommend upgrading to RxSwift 6.x as soon as possible, regardless.
Ethan.1
RxSwift 6.1
Thanks to @iDevid, @marcelofabri, @faimin and @danielt1263 for their contributions to this release
Breaking Changes 🔥
- Deprecate withUnretained for
Driver
Note: It is extremely rare to ship a breaking change in a patch release, but this is a relatively fresh feature with unusual circumstances. For the full story, see #2290.
Other changes 🆕
- Add new
subscribe(with:onNext:onError:onCompleted:onDisposed:)
alternatives towithUnretained
. This exists for all traits and types:Observable
,Driver
,Signal
,Infallible
,Completable
,Single
,Maybe
#2290 Reactive
now supports structs and value-types again, with the dynamic look-up specifically dealing withAnyObject
s #2285- Fix xcframework support for
RxCocoa
(Drag in new RxCocoaRuntime.xcframework alongsideRxCocoa
) - Freeze
MaybeEvent
andCompletableEvent
#2271 #2272 - Fix missing RxCocoaRuntime.h header in
RxCocoa
podspec #2281 - Remove invalid libswiftXCTest.dylib linking to support Xcode 12.5
- Print URLRequest body
httpBody
, regardless of HTTP Method #2288
Ethan
RxSwift 6 is here!
New year, new version, new logo - such an exciting day! 🥳
To get a glimpse of what this new major version packs, check out the following blog post: What's new in 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) getBinder
s for all properties for free using@dynamicMemberLookup
. - New
Infallible
object which is identical toObservable
with the guarantee of never failing. - Add variadic
drive()
andemit()
to multiple observers and relays. - New
decode(type:decoder:)
operator forObsrvableType
s ofData
. SingleEvent
is now simplyResult<Element, Swift.Error>
and methods changed accordingly (e.g.subscribe(onSuccess:onFailure:)
).- Add
ReplayRelay
. - Add new
withUnretained(_:)
operator. - Add
distinctUntilChanged(at keyPath:)
. - Add
UIApplication
Reactive extensions . - Rename
catchError(_:)
tocatch(_:)
. - Rename
catchErrorJustReturn(_:)
tocatchAndReturn(_:)
. - Rename
elementAt(_:)
toelement(at:)
. - Rename
retryWhen(_:)
toretry(when:)
. - Rename
takeUntil(_:)
totake(until:)
andtakeUntil(behavior:_:)
totake(until:behavior:)
. - Rename
takeWhile(_:)
totake(while:)
andtakeWhile(behavior:_:)
totake(while:behavior:)
. - Rename
take(_:)
duration overload totake(for:)
(e.g.take(for: .seconds(3))
). - Rename
skipWhile(_:)
toskip(while:)
. - Rename
takeUntil(_:)
totake(until:)
. - Rename
observeOn
andsubscribeOn
toobserve(on:)
andsubscribe(on:)
. ignoreElements()
now returnsObservable<Never>
.- Make
SharedSequence
conform toObservableConvertibleType
. - Add
onDisposed
toMaybe
,Completable
andSingle
. - Unify and optimize swizzling extensions into a single one.
- Add
DisposeBag
function builder to allow easy comma-less initialization of aDisposeBag
. - Advance support of XCFrameworks by enabling
BUILD_LIBRARY_FOR_DISTRIBUTION
and cleaning up. - Move URLSession logging settings to a more appropriate URLSession.rx.shouldLogRequest configurable closure.
- Many, many, many quality of life bugs and fixes.
6.0.0-rc.2
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 appropriateURLSession.rx.shouldLogRequest
configurable closure. - README, CI, and additional house cleaning.
6.0.0 RC1
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) getBinder
s for all properties for free using@dynamicMemberLookup
. - New
Infallible
object which is identical toObservable
with the guarantee of never failing. - Add variadic
drive()
andemit()
to multiple observers and relays. - New
decode(type:decoder:)
operator forObsrvableType
s ofData
. SingleEvent
is now simplyResult<Element, Swift.Error>
and methods changed accordingly (e.g.subscribe(onSuccess:onFailure:)
).- Add
ReplayRelay
. - Add
distinctUntilChanged(at keyPath:)
. - Add
UIApplication
Reactive extensions . - Rename
catchError(_:)
tocatch(_:)
. - Rename
catchErrorJustReturn(_:)
tocatchAndReturn(_:)
. - Rename
elementAt(_:)
toelement(at:)
. - Rename
retryWhen(_:)
toretry(when:)
. - Rename
takeUntil(_:)
totake(until:)
andtakeUntil(behavior:_:)
totake(until:behavior:)
. - Rename
takeWhile(_:)
totake(while:)
andtakeWhile(behavior:_:)
totake(while:behavior:)
. - Rename
take(_:)
duration overload totake(for:)
(e.g.take(for: .seconds(3))
). - Rename
skipWhile(_:)
toskip(while:)
. - Rename
takeUntil(_:)
totake(until:)
. - Rename
observeOn
andsubscribeOn
toobserve(on:)
andsubscribe(on:)
. ignoreElements()
now returnsObservable<Never>
.- Make
SharedSequence
conform toObservableConvertibleType
. - Add
onDisposed
toMaybe
,Completable
andSingle
. - Unify and optimize swizzling extensions into a single one.
- Add
DisposeBag
function builder to allow easy comma-less initialization of aDisposeBag
. - Advance support of
xcframework
s by enablingBUILD_LIBRARY_FOR_DISTRIBUTION
and cleaning up. - Many, many, many quality of life bugs and fixes.
Catalyst.1
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
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