{"id":13995270,"url":"https://github.com/cx-org/CombineX","last_synced_at":"2025-07-22T21:32:34.644Z","repository":{"id":48783491,"uuid":"190946915","full_name":"cx-org/CombineX","owner":"cx-org","description":"Open source implementation of Apple's Combine","archived":false,"fork":false,"pushed_at":"2023-07-16T18:53:41.000Z","size":13635,"stargazers_count":623,"open_issues_count":5,"forks_count":44,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-05-22T15:33:03.242Z","etag":null,"topics":["async","combine","event","publisher","reactive","rx","subscriber"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cx-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-06-09T00:09:28.000Z","updated_at":"2024-05-13T06:49:07.000Z","dependencies_parsed_at":"2024-01-13T01:38:41.050Z","dependency_job_id":"f85d1fcc-e0b1-46bc-b71e-e291f7c5fd16","html_url":"https://github.com/cx-org/CombineX","commit_stats":{"total_commits":487,"total_committers":11,"mean_commits":44.27272727272727,"dds":0.5913757700205339,"last_synced_commit":"299bc0f8861f7aa6708780457aeeafab1c51eaa7"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cx-org%2FCombineX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cx-org%2FCombineX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cx-org%2FCombineX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cx-org%2FCombineX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cx-org","download_url":"https://codeload.github.com/cx-org/CombineX/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227177868,"owners_count":17743189,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","combine","event","publisher","reactive","rx","subscriber"],"created_at":"2024-08-09T14:03:19.887Z","updated_at":"2024-11-29T17:31:22.192Z","avatar_url":"https://github.com/cx-org.png","language":"Swift","funding_links":[],"categories":["Content","Swift"],"sub_categories":["Libraries"],"readme":"# CombineX\n\n[![Github CI Status](https://github.com/cx-org/CombineX/workflows/CI/badge.svg)](https://github.com/cx-org/CombineX/actions)\n[![Release](https://img.shields.io/github/release-pre/cx-org/combinex)](https://github.com/cx-org/CombineX/releases)\n![Install](https://img.shields.io/badge/install-Swift_PM%20%7C%20CocoaPods%20%7C%20Carthage-ff69b4)\n![Supported Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20iOS%20%7C%20watchOS%20%7C%20tvOS-lightgrey)\n[![Discord](https://img.shields.io/badge/chat-discord-9cf)](https://discord.gg/9vzqgZx)\n\n[简体中文](README_zh-Hans.md)\n\nOpen-source implementation of Apple's [Combine](https://developer.apple.com/documentation/combine) for processing values over time.\n\n\u003e Though CombineX have implemented all the Combine interface, the project is still in early development.\n\n## What is Combine\n\n\u003e Customize handling of asynchronous events by combining event-processing operators. -- Apple\n\n`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.\n\n## Get Started\n\n\u003e If you develop a library, it's recommended to use [`CXShim`](https://github.com/cx-org/CXShim) so your library is compatible with SwiftUI.\n\n### Requirements\n\n- Swift 5.0+ (Xcode 10.2+)\n\n### Installation\n\n#### Swift Package Manager (Recommended)\n\n```swift\npackage.dependencies += [\n    .package(url: \"https://github.com/cx-org/CombineX\", from: \"0.4.0\"),\n]\n```\n\n#### CocoaPods\n\n```ruby\npod 'CombineX', \"~\u003e 0.4.0\"\n\n# or, if you want to use `Foundation` extensions: \npod 'CombineX/CXFoundation', \"~\u003e 0.4.0\"\n```\n\n#### Carthage\n\n```carthage\ngithub \"cx-org/CombineX\" ~\u003e 0.4.0\n```\n\n## Related Projects\n\nThese 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`.\n\n- [CXTest](https://github.com/cx-org/CXTest): test infrastructure for Combine. It provides useful test utilities like `TracingSubscriber` and `VirtualTimeScheduler`.\n- [CXExtensions](https://github.com/cx-org/CXExtensions): provides a collection of useful extensions for Combine, such as `IgnoreError`, `DelayedAutoCancellable`, etc.\n- [CXCocoa](https://github.com/cx-org/CXCocoa): provides Combine extensions to `Cocoa`, such as `KVO+Publisher`, `Method Interception`, `UIBinding`, `Delegate Proxy`, etc.\n\n## License\n\nCombineX is released under the MIT license. See [LICENSE](LICENSE) for details.\n\nThe following files are adapted from the Swift open source project:\n\n- [Publishers+KeyValueObserving](Sources/CXFoundation/Publishers+KeyValueObserving.swift)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcx-org%2FCombineX","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcx-org%2FCombineX","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcx-org%2FCombineX/lists"}