RxSwift/Documentation/Linux.md

32 lines
936 B
Markdown

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.