Swiftpack.co -  cx-org/CombineX as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
cx-org/CombineX
Open source implementation for Apple's Combine
.package(url: "https://github.com/cx-org/CombineX.git", from: "0.3.1")

CombineX

Github CI Status Release Install Supported Platform Discord

简体中文

Open-source implementation of Apple's Combine for processing values over time.

Though CombineX have implemented all the Combine interface, the project is still in early development.

What is Combine

Customize handling of asynchronous events by combining event-processing operators. -- Apple

Combine is a Functional Reactive Programming (FRP) framework launched by Apple at WWDC 2019. It will definitely be the cornerstone of Swift programming in the foreseeable future.

Get Started

CombineX contains 3 products: CombineX, CXShim, and CXTest. You can simply use CombineX and ignore the presence of system Combine.

But if you develop a library, it's encouraged to use CXShim, a virtual Combine interface, so your library is backward deployable and compatible with SwiftUI. See Combine Compatible Package for more information.

CXTest is a test infrastructure for Combine, built on CXShim. It provides useful test utilities like TracingSubscriber and VirtualTimeScheduler.

Requirements

  • Swift 5.0 (Xcode 10.2)

Installation

Swift Package Manager (Recommended)

package.dependencies += [
    .package(url: "https://github.com/cx-org/CombineX", from: "0.3.1"),
]

CocoaPods

pod 'CombineX', "~> 0.3.1"

Carthage

github "cx-org/CombineX" ~> 0.3.1

CXShim is only available with Swift Package Manager.

Related Projects

These libraries bring additional functionality to Combine. They are all Combine Compatible Package and you're free to switch underlying Combine implementation between CombineX and Apple's Combine.

  • CXCocoa: provides Combine extensions to Cocoa, such as KVO+Publisher, Method Interception, UIBinding, Delegate Proxy, etc.
  • CXExtensions: provides a collection of useful extensions for Combine, such as IgnoreError, DelayedAutoCancellable, etc.

License

CombineX is released under the MIT license. See LICENSE for details.

The following files are adapted from the Swift open source project:

GitHub

link
Stars: 521
Last commit: 2 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Dependencies

Release Notes

0.3.1
7 weeks ago
  • Fix flipped sign in RunLoop.CX.SchedulerTimeType.distance(to:) (#104)
  • Fix premature completion in Publishers.Zip (#105)
  • Fix a crash when using Publishers.Concatenate with Just (#109)
  • Fix CocoaPods and Carthage integration (#111, #114)

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API