Skip to content

Releases: ReactiveX/RxSwift

BringThemHome πŸŽ—οΈ

07 Oct 07:07
c7c7d2c
Compare
Choose a tag to compare

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 -> 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:

New Contributors

Full Changelog: 6.7.1...6.8.0

Seder.1 🌾

01 May 15:50
b06a8c8
Compare
Choose a tag to compare

RxSwift 6.7.1 🌾

  • Fixed an issue preventing RxSwift to build on visionOS

Seder 🌾

21 Apr 08:46
5949cbd
Compare
Choose a tag to compare

RxSwift 6.7.0 🌾

Onyx πŸͺ¨

12 May 12:18
9dcaa4b
Compare
Choose a tag to compare

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

Atlas

14 Jan 19:22
Compare
Choose a tag to compare

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

08 May 15:21
Compare
Choose a tag to compare

Support Xcode 12.5

5.Throwback

11 Aug 12:25
cec6816
Compare
Choose a tag to compare

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

11 Feb 13:08
Compare
Choose a tag to compare

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

Ethan

01 Jan 14:13
Compare
Choose a tag to compare

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

21 Nov 10:14
Compare
Choose a tag to compare
6.0.0-rc.2 Pre-release
Pre-release

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.