A chainable interface for Swift's async/await that provides promise-like operations while using native language features.
Async+ is a Swift library that provides a chainable interface for async/await code, similar to promises and futures. It solves the problem of nested do/catch blocks in async Swift code by allowing developers to sequence operations with methods like `.then`, `.recover`, and `.catch` while maintaining full compatibility with Swift's native concurrency system.
Swift developers building iOS, macOS, or server-side applications who want cleaner async/await code with promise-like chaining patterns, especially those migrating from PromiseKit or similar libraries.
Developers choose Async+ because it provides the familiar chaining patterns of promise libraries while using Swift's native async/await system, resulting in type-safe, modular code with better compiler support and no external dependency overhead.
⛓ A chainable interface for Swift's async/await.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides .recover and .catch methods that modularize error handling without nested do/catch blocks, as shown in the README example comparing cleaner chains to verbose native code.
Chains can be converted back to async/await with .async() and .asyncThrows(), ensuring seamless integration with Swift's built-in concurrency system for flexible usage.
Uses distinct Promise<T> and Guarantee<T> types to enforce throwing vs non-throwing chains, preventing unhandled errors with compilation warnings as highlighted in the documentation.
Includes dedicated migration documentation, easing the transition for developers moving existing promise-based codebases to native async/await with chainable patterns.
The library is in its initial release, which may mean limited battle-testing, potential bugs, and a smaller ecosystem compared to established alternatives like PromiseKit.
Introduces an abstraction on top of native async/await, requiring developers to learn new patterns (.then, .recover) that might not justify the overhead for simple async workflows.
Adds a third-party library to projects, which can increase build times, maintenance burden, and potential compatibility issues with Swift version updates.
async+ is an open-source alternative to the following products: