AwaitKit is a lightweight Swift framework that simplifies working with asynchronous code by providing a set of powerful tools. Whether you are using plain callbacks, promises, or futures, AwaitKit helps you write clean and readable code.

  • Simplifies handling asynchronous code in Swift
  • Supports various ways of handling async code, such as callbacks, promises, and futures
  • Helps write clean and readable code
  • Lightweight and easy to integrate into existing projects
  • Features intuitive APIs for chaining and composing async operations


To install AwaitKit, follow these steps:

  1. Open your project in Xcode
  2. Go to “File” > “Swift Packages” > “Add Package Dependency”
  3. In the “Choose Package Repository” dialog, enter the repository URL:
  4. Select the version or branch you want to use
  5. Click “Next” and wait for Xcode to resolve dependencies
  6. After the package is resolved, click “Finish” to add AwaitKit to your project


Using AwaitKit in your project is straightforward. Follow these steps:

  1. Import AwaitKit into your Swift file: import AwaitKit
  2. Write asynchronous tasks using your preferred method, such as callbacks or promises
  3. Use AwaitKit APIs to handle the async code, such as await() or async { }
  4. Submit your async tasks to the AwaitKit framework for execution and await the results


Here are a few examples to demonstrate the usage of AwaitKit:

import AwaitKit

func fetchRemoteData() async throws -> Data {
  // Simulating an asynchronous network call
  try await Task.sleep(nanoseconds: 2 * NSEC_PER_SEC)
  return Data()

do {
  let data = try await fetchRemoteData()
  print("Data received: \(data)")
} catch {
  print("Error: \(error)")


AwaitKit is compatible with projects targeting iOS 10.0 or later, macOS 10.12 or later, watchOS 3.0 or later, and tvOS 10.0 or later.


For more information on AwaitKit and working with asynchronous code in Swift, refer to the following resources: