RxSwift Versions Save

Reactive Programming in Swift

6.7.0

5 days ago

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)

6.6.0

11 months ago

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

6.5.0

2 years ago

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

5.1.3

2 years ago

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.

6.2.0

2 years ago

Support Xcode 12.5

6.1.0

3 years ago

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 AnyObjects #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

6.0.0

3 years ago

RxSwift 6 is here!

New year, new version, new logo - such an exciting day! 🥳

RxSwift Logo

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

6.0.0-rc.2

3 years ago

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-rc.1

3 years ago

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.

5.1.1

4 years ago

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