Releases: ReactiveX/RxSwift
BringThemHome ποΈ
What's Changed
-
We've added an Empty Privacy Manifest to the framework. We are not actually required for a privacy manifest since we don't collect any information, but Apple keeps accidentally tagging the project as problematic, so we've added an empty one :)
-
You can now create a
Single
from an async piece of work, for example:
func doIncredibleWork() async throws -> AmazingResponse {
...
}
let single = Single.create {
try await doIncredibleWork()
} // Single<AmazingResponse>
Along with our other existing bridging methods - we now cover the full range of use cases for interchangeably working with RxSwift and Swift Concurrency in a code base (AsyncStream
-> Observable
, Observable
-> AsyncStream
, Single
-> await
able value, await
able value -> Single).
Check out the updated documentation for more details.
Members of the community have also made other bug fixes, updates, and contributions:
- Add Sendable conformance to AtomicInt by @marcelofabri in #2624
- Add the deployment_target for visionOS in Podspec by @sanghun0724 in #2603
- Update links for repositories moved to the swiftlang org on GitHub by @lamtrinhdev in #2614
- Bump up swift-tools-version to 5.5 by @adincebic in #2608
- Support .editorConfig for consistent code formatting by @TTOzzi in #2626
- Tidied up some code using optional map by @BenMaer in #2549
- Fix a typo from SwiftConcurrency.md by @HeegeePark in #2623
- Don't retain receiver of Completable.andThen beyond its completion by @nikolaykasyanov in #2604
- Added some documentations to AsyncLock file by @herlandro in #2627
New Contributors
- @adincebic made their first contribution in #2608
- @lamtrinhdev made their first contribution in #2614
- @BenMaer made their first contribution in #2549
- @HeegeePark made their first contribution in #2623
- @nikolaykasyanov made their first contribution in #2604
- @herlandro made their first contribution in #2627
Full Changelog: 6.7.1...6.8.0
Seder.1 πΎ
RxSwift 6.7.1 πΎ
- Fixed an issue preventing RxSwift to build on visionOS
Seder πΎ
RxSwift 6.7.0 πΎ
- Add support for visionOS (Thanks @nighthawk) #2564
- Align CocoaPods macOS deployment target to 10.10 (Like SPM)
- Link XCTest weakly on CocoaPods to allow static linking (Thanks @mkj-is) #2587
- Fix and align factory closure runtimes (Thanks @danielt1263) #2534
- Fix a possible crash in RxDelegateProxy (Thanks @sejal-hotstar) #2546
- Fix release build warning from missing explicit imports (Thanks @drewster99) #2555
- Various code formatting and documentation fixes (Thanks @sanghun0724, @nicholaskim94, @fanqiaojun, @honghoker, @annie-gupta, @woin2ee, @danielt1263)
Onyx πͺ¨
RxSwift 6.6.0 πͺ¨
- New helpful conversions to
Infallible
- Fix an issue with continuation leak for
async/await
bridge - Improve atomicity of
BooleanDisposable
- Crash workaround for
Table/CollectionViewDelegateProxy
- New
Infallible
helpers forCombineLatest
- More minor fixes and updates
- Support catalyst for xcframework distribution
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.