RxSwift icon indicating copy to clipboard operation
RxSwift copied to clipboard

Reactive Programming in Swift

trafficstars

Miss Electric Eel 2016 RxSwift: ReactiveX for Swift

Travis CI platforms pod Carthage compatible

Xcode 7.3 Swift 2.2 required

About Rx

Rx is a generic abstraction of computation expressed through Observable<Element> interface.

This is a Swift version of Rx.

It tries to port as many concepts from the original version as possible, but some concepts were adapted for more pleasant and performant integration with iOS/OSX environment.

Cross platform documentation can be found on ReactiveX.io.

Like the original Rx, its intention is to enable easy composition of asynchronous operations and event/data streams.

KVO observing, async operations and streams are all unified under abstraction of sequence. This is the reason why Rx is so simple, elegant and powerful.

I came here because I want to ...

... understand
  • why use rx?
  • the basics, getting started with RxSwift
  • units - what is Driver, ControlProperty, and Variable ... and why do they exist?
  • testing
  • tips and common errors
  • debugging
  • the math behind Rx
  • what are hot and cold observable sequences?
  • what does the the public API look like?
... install
  • Integrate RxSwift/RxCocoa with my app. Installation Guide
... hack around
  • with example app. Running Example App
  • with operators in playgrounds. Playgrounds
... interact
  • All of this is great, but it would be nice to talk with other people using RxSwift and exchange experiences.
    Slack channel Join Slack Channel
  • Report a problem using the library. Open an Issue With Bug Template
  • Request a new feature. Open an Issue With Feature Request Template
... compare
  • with other libraries.
... find compatible
... see the broader vision
  • Does this exist for Android? RxJava
  • Where is all of this going, what is the future, what about reactive architectures, how do you design entire apps this way? Cycle.js - this is javascript, but RxJS is javascript version of Rx.
References