Swift.org Blog Tony Parker Mar 24, 2022

Swift Async Algorithms

Article Summary

Tony Parker from Apple just dropped a game-changer for async Swift development. If you've been wrestling with time-based operations or multi-input streams, this new package solves problems you didn't know had elegant solutions.

Apple released Swift Async Algorithms, an open-source package that brings production-ready algorithms for AsyncSequence. Built on Swift 5.5's async/await foundation, it tackles the notoriously complex challenge of handling values over time with algorithms like debounce, throttle, and combineLatest.

Key Takeaways

Critical Insight

Swift Async Algorithms gives developers battle-tested, time-based operations for AsyncSequence that are simpler to implement and reason about than Combine's operator chains.

The article reveals why Apple chose to build this as a separate package rather than baking it into the Swift standard library.

About This Article

Problem

Swift developers kept running into the same problem: managing multiple asynchronous inputs at once. The edge cases were tricky, and each project ended up with its own custom code to handle them.

Solution

Tony Parker's team at Apple built Swift Async Algorithms, an open-source package that solves this. It includes well-tested implementations of operations like zip, combineLatest, and merge. The package is built on Swift 5.5's AsyncSequence.

Impact

Developers can now write asynchronous code using simple for/in loops and try/catch blocks instead of chaining complex operators. The package works across different iOS versions without extra work.