The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## 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 for `CombineLatest`
- More minor fixes and updates
- Support catalyst for xcframework distribution
## 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:
```swift
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](https://github.com/ReactiveX/RxSwift/blob/main/Documentation/SwiftConcurrency.md) for additional information: https://github.com/ReactiveX/RxSwift/blob/main/Documentation/SwiftConcurrency.md
Support Xcode 12.5
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.
# 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 to `withUnretained`. 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 with `AnyObject`s #2285
- Fix xcframework support for `RxCocoa` (Drag in new **RxCocoaRuntime.xcframework** alongside `RxCocoa`)
- Freeze `MaybeEvent` and `CompletableEvent` #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
# RxSwift 6 is here!
### New year, new version, new logo - such an exciting day! 🥳
<p align="center">
<img src="https://github.com/ReactiveX/RxSwift/raw/main/assets/RxSwift_Logo.png" width="25%" alt="RxSwift Logo" />
</p>
To get a glimpse of what this new major version packs, check out the following blog post: [What's new in RxSwift 6](https://dev.to/freak4pc/what-s-new-in-rxswift-6-2nog)
> **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 `Binder`s 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 `ObsrvableType`s of `Data`.
- `SingleEvent` is now simply `Result<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(_:)` 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.
- Move URLSession logging settings to a more appropriate URLSession.rx.shouldLogRequest configurable closure.
- Many, many, **many** quality of life bugs and fixes.
# 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.
# 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 `Binder`s 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 `ObsrvableType`s 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 `xcframework`s by enabling `BUILD_LIBRARY_FOR_DISTRIBUTION` and cleaning up.
- Many, many, **many** quality of life bugs and fixes.
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](CHANGELOG.md)
### Note:
The pre-built Carthage binary was built using Xcode 11.4.1 / Swift 5.2.2
This release removes UIWebView Reactive Extensions due to [Apple's hard deprecation, starting April 2020](https://developer.apple.com/news/?id=12232019b) which also allows RxSwift to be used in Catalyst apps. #2062
Other improvements and additions can be found in the project's [CHANGELOG.md](CHANGELOG.md)
### Note:
The pre-built Carthage binary was built using Xcode 11.3.1 / Swift 5.1.3