Combine

At WWDC 2019, alongside SwiftUI, Apple released a new framework called Combine. While the API is completely different, it seems conceptually quite close to what the core of Noze.io provides: streams of events, with backpressure support and transformations.

A Combine Publisher is quite similar to a Noze.io Writable, a Combine Subscriber is like a Noze.io Readable, and a Combine Subject is close to a Noze.io Transform stream.

So what does that all mean for Noze.io? The broader plan was to eventually reimplement Noze.io on top of SwiftNIO and add its typesafe stream APIs to NIO (Noze.io is currently build on top of Grand Central Dispatch). That doesn’t seem to make a lot of sense anymore. It seems more viable to just use Combine :-)

That brings us back to our 𝓶Express posting beginning of the year. With the streams replaced by Combine, the major Noze.io feature left is its Node-like APIs which makes it very approachable to users coming from that environment.

Feels like with Combine starting 𝓶Express makes even more sense!

Note that Apple’s Combine itself is not OpenSource (yet?) and it is also limited to iOS 13 and macOS 10.15. However, more than one project stepped up to fill that void, for example OpenCombine.

To drop your opinions, feel free to come along the Noze.io Slack, or at @noze_io 🤓

Written on August 9, 2019