Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/luoxiu/CombineX
Open source implementation of Apple's Combine
https://github.com/luoxiu/CombineX
Last synced: about 1 month ago
JSON representation
Open source implementation of Apple's Combine
- Host: GitHub
- URL: https://github.com/luoxiu/CombineX
- Owner: luoxiu
- License: mit
- Fork: true (cx-org/CombineX)
- Created: 2021-07-04T14:39:26.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-07-04T14:47:26.000Z (over 3 years ago)
- Last Synced: 2024-10-25T16:43:38.093Z (about 2 months ago)
- Homepage:
- Size: 13 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-combine - CombineX
- awesome-swiftui - luoxiu/CombineX - CombineX is an open source implementation for Apple's Combine specs. (Samples)
README
# CombineX
[![Github CI Status](https://github.com/cx-org/CombineX/workflows/CI/badge.svg)](https://github.com/cx-org/CombineX/actions)
[![Release](https://img.shields.io/github/release-pre/cx-org/combinex)](https://github.com/cx-org/CombineX/releases)
![Install](https://img.shields.io/badge/install-Swift_PM%20%7C%20CocoaPods%20%7C%20Carthage-ff69b4)
![Supported Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20iOS%20%7C%20watchOS%20%7C%20tvOS-lightgrey)
[![Discord](https://img.shields.io/badge/chat-discord-9cf)](https://discord.gg/9vzqgZx)[简体中文](README_zh-Hans.md)
Open-source implementation of Apple's [Combine](https://developer.apple.com/documentation/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)](https://en.wikipedia.org/wiki/Functional_reactive_programming) framework launched by Apple at WWDC 2019. It will definitely be the cornerstone of Swift programming in the foreseeable future.
## Get Started
> If you develop a library, it's recommended to use [`CXShim`](https://github.com/cx-org/CXShim) so your library is compatible with SwiftUI.
### Requirements
- Swift 5.0+ (Xcode 10.2+)
### Installation
#### Swift Package Manager (Recommended)
```swift
package.dependencies += [
.package(url: "https://github.com/cx-org/CombineX", from: "0.3.2"),
]
```#### CocoaPods
```ruby
pod 'CombineX', "~> 0.3.2"# or, if you want to use `Foundation` extensions:
pod 'CombineX/CXFoundation', "~> 0.3.2"
```#### Carthage
```carthage
github "cx-org/CombineX" ~> 0.3.2
```## Related Projects
These libraries bring additional functionality to Combine. They are all [Combine Compatible Package](https://github.com/cx-org/CombineX/wiki/Combine-Compatible-Package) and you're free to switch underlying Combine implementation between `CombineX` and Apple's `Combine`.
- [CXTest](https://github.com/cx-org/CXTest): test infrastructure for Combine. It provides useful test utilities like `TracingSubscriber` and `VirtualTimeScheduler`.
- [CXExtensions](https://github.com/cx-org/CXExtensions): provides a collection of useful extensions for Combine, such as `IgnoreError`, `DelayedAutoCancellable`, etc.
- [CXCocoa](https://github.com/cx-org/CXCocoa): provides Combine extensions to `Cocoa`, such as `KVO+Publisher`, `Method Interception`, `UIBinding`, `Delegate Proxy`, etc.## License
CombineX is released under the MIT license. See [LICENSE](LICENSE) for details.
The following files are adapted from the Swift open source project:
- [Publishers+KeyValueObserving](Sources/CXFoundation/Publishers+KeyValueObserving.swift)