A Swift-based Future/Promises library for iOS and macOS, designed to simplify asynchronous and multi-threaded programming.
FutureKit is a Swift library that implements Futures and Promises for iOS and macOS development. It simplifies asynchronous and multi-threaded programming by providing a type-safe, composable way to handle async operations, errors, and cancellations. It solves the complexity of managing dispatch queues, callback blocks, and error propagation in traditional async code.
iOS and macOS developers building apps that require handling asynchronous operations, such as network calls, image processing, or database interactions, and who want cleaner, more maintainable async code.
Developers choose FutureKit because it offers a unified, Swift-native approach to async programming with strong type safety, easy error handling, and built-in support for cancellation. Its Executor system abstracts away GCD complexities, making it easier to guarantee code runs on the correct queues without manual dispatch_async calls.
A Swift based Future/Promises Library for IOS and OS X.
Uses Swift Generics to enforce type safety, allowing the compiler to infer return types from asynchronous operations, as demonstrated in the README's image processing example from Future<UIImage> to blurred images.
Integrates seamlessly with Swift's error handling, enabling a single catch-all error handler for entire chains of async operations, simplifying debugging and reliability, as highlighted in the error handling features.
Futures can be easily mapped and composed into new Futures, with errors and cancellations automatically propagated, making complex async workflows manageable without nested callbacks.
Abstracts Grand Central Dispatch with Executors like .Main and .UserInitiated, ensuring code runs on specified queues without manual dispatch_async calls, as outlined in the GCD simplification section.
Tailored specifically for iOS and macOS, limiting its utility for Swift projects targeting Linux, Windows, or other platforms where Swift is supported, as noted in the platform compatibility.
Does not leverage Swift 5.5's built-in async/await syntax, which might make it feel outdated compared to modern Swift concurrency approaches, and the README doesn't mention plans for integration.
Introduces an external library dependency, which could be a drawback for teams aiming to keep their project's third-party code to a minimum, especially for simple async needs.
Reactive Programming in Swift
Cocoa framework and Obj-C dynamism bindings for ReactiveSwift.
Promises for Swift & ObjC.
Unidirectional Data Flow in Swift - Inspired by Redux
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.