Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. Async

Async

MITSwift2.1.0

A Swift library providing syntactic sugar for Grand Central Dispatch (GCD) with chainable async blocks and modern queue support.

GitHubGitHub
4.6k stars313 forks0 contributors

What is Async?

Async is a Swift library that provides syntactic sugar for Grand Central Dispatch (GCD), Apple's concurrency framework. It simplifies writing asynchronous code by offering a chainable syntax that reduces nesting and improves readability compared to raw GCD calls. The library supports modern quality-of-service queues, delayed execution, cancellation, and group operations.

Target Audience

iOS, macOS, tvOS, and watchOS developers working with Swift who need to manage asynchronous tasks using Grand Central Dispatch but want cleaner, more maintainable code.

Value Proposition

Developers choose Async because it dramatically reduces the boilerplate and nesting associated with GCD, offering a fluent API that makes asynchronous code easier to write, read, and reason about while retaining full compatibility with Apple's concurrency system.

Overview

Syntactic sugar in Swift for asynchronous dispatches in Grand Central Dispatch

Use Cases

Best For

  • Simplifying complex chains of asynchronous operations in Swift apps
  • Reducing callback nesting when using Grand Central Dispatch
  • Managing parallel tasks with groups and waiting for completion
  • Dispatching delayed tasks with clean syntax
  • Writing cross-platform async code for iOS, macOS, tvOS, and watchOS
  • Integrating custom dispatch queues with system queues seamlessly

Not Ideal For

  • Projects adopting Swift 5.5+ and its native async/await concurrency model
  • Teams requiring actively maintained libraries with regular updates and bug fixes
  • Applications needing sophisticated error handling or complex asynchronous patterns beyond basic chaining
  • Developers who prefer to minimize external dependencies and use raw GCD or Swift concurrency directly

Pros & Cons

Pros

Chainable Syntax

Eliminates deep nesting by allowing sequential async operations to be written in a fluent, readable chain, as shown in the README's comparison with raw GCD.

Comprehensive Queue Support

Provides shorthand methods for all GCD QoS queues (main, userInteractive, etc.) and custom queues, simplifying dispatch code.

Parallel Task Management

AsyncGroup makes it easy to run and wait for multiple asynchronous blocks in parallel, improving code structure for concurrent tasks.

Delayed Execution and Cancellation

Built-in support for scheduling blocks after delays and canceling undispatched tasks offers better control over async workflows.

Cons

Abandoned Project

Explicitly marked as no longer maintained, meaning no future updates, bug fixes, or compatibility with new Swift versions.

Outdated Concurrency Model

Relies solely on GCD and does not integrate with Swift's modern async/await features, limiting its relevance for current development.

Known Simulator Issues

The README admits bugs with modern GCD queues in the iOS Simulator, which can impede testing and development.

Limited Cancellation Scope

Cancellation only applies to blocks not yet dispatched, which may not suffice for more advanced task management needs.

Frequently Asked Questions

Quick Stats

Stars4,565
Forks313
Contributors0
Open Issues3
Last commit2 years ago
CreatedSince 2014

Tags

#ios#async-await#tvos#grand-central-dispatch#concurrency#watchos#swift#macos#syntactic-sugar

Built With

S
Swift

Included in

iOS51.7kSwift26.0k
Auto-fetched 1 day ago

Related Projects

ScheduleSchedule

Schedule timing task in Swift using a fluent API. (A friendly alternative to Timer)

Stars1,820
Forks114
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub