Releases: ReactiveX/RxSwift
Kawazoi.1
This release is identical to 6.10.1 Kawazoi aside for fixing the Manifest for Swift 5.9 and also fixes for Swift < 6.2 in the code itself. Content-wise, 6.10.1 and 6.10 are identical.
Breaking Changes
- CocoaPods support has been officially deprecated. This follows Cocoapods' read-only trunk notice. Please migrate to Swift Package Manager or Carthage.
AsyncSequence.asObservable()now usesTask.detachedinstead ofTask, aligning with how other Rx/Async bridging works. This removes a subtle foot-gun where iteration could unexpectedly inherit the calling task's actor context, potentially causing deadlocks or unexpected serialization. You can now also optionally provide aTaskPriority:
stream.asObservable(priority: .userInitiated)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { ... })New Features
- Android/non-Darwin support in Package.swift with CI testing, thanks @marcprux!
- Swift Concurrency enabled for Linux - all async/await bridging features now work on Linux, thanks @CrownedPhoenix!
- Xcode 26 & Swift 6.2 compatibility
Bug Fixes
- Fixed deadlock in
share(replay:)with concurrent subscriptions, thanks @isaac-weisberg! - Fixed Swift 6.2 weak mutability warning in Binder, thanks @kirillyakimovich!
- Fix typo in
VirtualTimeScheduler, thanks @serhii-bykov! - Fix typo:
MutlicastType->MulticastType, thanks @user-lody! - Update
README.md, thanks @Olexandr88!
Maintenance
- Removed legacy
canImport(_Concurrency)checks - Removed
CHANGELOG.mdin favor of GitHub releases
New Contributors
- @CrownedPhoenix made their first contribution in #2660
- @marcprux made their first contribution in #2663
- @esphynox made their first contribution in #2671
- @jeonghi made their first contribution in #2669
- @kirillyakimovich made their first contribution in #2677
- @Olexandr88 made their first contribution in #2675
Full Changelog: 6.9.1...6.10.0
Kawazoi
Breaking Changes
- CocoaPods support has been officially deprecated. This follows Cocoapods' read-only trunk notice. Please migrate to Swift Package Manager or Carthage.
AsyncSequence.asObservable()now usesTask.detachedinstead ofTask, aligning with how other Rx/Async bridging works. This removes a subtle foot-gun where iteration could unexpectedly inherit the calling task's actor context, potentially causing deadlocks or unexpected serialization. You can now also optionally provide aTaskPriority:
stream.asObservable(priority: .userInitiated)
.observe(on: MainScheduler.instance)
.subscribe(onNext: { ... })New Features
- Android/non-Darwin support in Package.swift with CI testing, thanks @marcprux!
- Swift Concurrency enabled for Linux - all async/await bridging features now work on Linux, thanks @CrownedPhoenix!
- Xcode 26 & Swift 6.2 compatibility
Bug Fixes
- Fixed deadlock in
share(replay:)with concurrent subscriptions, thanks @isaac-weisberg! - Fixed Swift 6.2 weak mutability warning in Binder, thanks @kirillyakimovich!
- Fix typo in
VirtualTimeScheduler, thanks @serhii-bykov! - Fix typo:
MutlicastType->MulticastType, thanks @user-lody! - Update
README.md, thanks @Olexandr88!
Maintenance
- Removed legacy
canImport(_Concurrency)checks - Removed
CHANGELOG.mdin favor of GitHub releases
New Contributors
- @CrownedPhoenix made their first contribution in #2660
- @marcprux made their first contribution in #2663
- @esphynox made their first contribution in #2671
- @jeonghi made their first contribution in #2669
- @kirillyakimovich made their first contribution in #2677
- @Olexandr88 made their first contribution in #2675
Full Changelog: 6.9.1...6.10.0
TheyreBack
500 π
What's Changed
Members of the community made bug fixes, updates, and contributions:
- Fix missing PrivacyInfo.xcprivacy in Carthage/xcframework by @pallzoltan in #2652
- Fix possibly stack overflow in merge operators by @geoffmacd in #2616
- Allow VirtualTimeScheduler to run on any thread (swift-testing enabler) by @danielt1263 in #2610
- Fix missing CoreFoundation import for NSLock in Linux builds by @clackary in #2643
- Hardcode light appearance in example app by @VAndrJ in #2612
- Fix a typo in SwiftConcurrency docs by @chagmn in #2644
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
Singlefrom 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 -> awaitable value, awaitable 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/awaitbridge - Improve atomicity of
BooleanDisposable - Crash workaround for
Table/CollectionViewDelegateProxy - New
Infalliblehelpers 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