Files
RxSwift/Documentation/Linux.md
2016-08-02 15:46:11 +09:00

936 B

Linux

We've made a proof of concept for Linux.

To test it, create Package.swift in your test directory with the following content:

import PackageDescription

let package = Package(
    name: "MyShinyUnicornCat",
    dependencies: [
        .Package(url: "https://github.com/ReactiveX/RxSwift.git", Version(2, 0, 0))
    ]
)

What works:

  • Distribution using Swift Package Manager
  • Single Threaded mode (CurrentThreadScheduler)
  • Half of the unit tests are passing.
  • Projects that can be compiled and "used":
    • RxSwift
    • RxBlocking
    • RxTests

What doesn't work:

  • Schedulers - because they are dependent on https://github.com/apple/swift-corelibs-libdispatch and it still hasn't been released
  • Multithreading - still no access to c11 locks
  • For some reason it looks like Swift compiler generates wrong code when using Swift.Error on Linux, so don't use errors, otherwise you can get weird crashes.