OSS TanbouSign in with GitHub

add merge, combineLatest, debounce, throttle, and other time/order algorithms to AsyncSequence

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
3,713
Primary language
Swift
License
Apache-2.0
Repository last updated
Oct 5, 2026
On this page

Overview

Swift Async Algorithms is a package for AsyncSequence and structured concurrency. It provides merge, combineLatest, zip, debounce, throttle, AsyncChannel, AsyncTimerSequence, and other APIs for values over time and multiple asynchronous streams.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Combine multiple AsyncSequences with merge, combineLatest, and zip

Multiple asynchronous inputs can be merged into one sequence, combined as latest-value tuples, or paired in sequence through zip.

Sources: [2]

Handle timing and back pressure with debounce, throttle, timers, and channels

Debounce and throttle control event frequency, AsyncTimerSequence emits periodic values, and AsyncChannel or AsyncThrowingChannel builds producer-consumer flows with back pressure.

Sources: [2]

Best fit

Fits search input, sensors, and multi-source event streams built around Swift concurrency

It is useful when applications want to compose asynchronous streams directly with async/await and AsyncSequence rather than introducing a separate reactive framework.

Sources: [2]

Before adoption

Version 1.1.7 uses Swift tools 6.2, and AsyncStreaming remains behind an unstable trait

Package.swift uses Swift tools 6.2 and strict concurrency. The AsyncStreaming product is explicitly source-unstable behind the UnstableAsyncStreaming trait. Version 1.1.7 fixes AsyncStreaming compilation errors, but API-stable libraries should avoid depending on the unstable trait.

Sources: [3][4]

Official sources

  1. [1]apple/swift-async-algorithms — GitHub repository(2026-10-06)
  2. [2]Swift Async Algorithms 1.1.7 — README(2026-10-06)
  3. [3]Swift Async Algorithms 1.1.7 — Package.swift(2026-10-06)
  4. [4]Swift Async Algorithms 1.1.7 release(2026-10-06)
  5. [5]Swift Async Algorithms Apache-2.0 license(2026-10-06)
Supplemental curator note

Swift Async Algorithms fits applications that compose event streams around async/await and AsyncSequence. AsyncStreaming remains source-unstable behind a trait, so stable libraries should scope that dependency carefully.

Try it in 3 steps

  1. 1

    Add Swift Async Algorithms 1.1.7 with SwiftPM

    Pin the reviewed release. Its Package.swift uses Swift tools 6.2.

    .package(url: "https://github.com/apple/swift-async-algorithms.git", exact: "1.1.7")
  2. 2

    Add the AsyncAlgorithms product to the target

    Link the stable AsyncAlgorithms module to the target.

    .product(name: "AsyncAlgorithms", package: "swift-async-algorithms")
  3. 3

    Process a Sequence as an AsyncSequence

    Convert a synchronous sequence into an async sequence and consume it with for-await.

    import AsyncAlgorithms for await value in [1, 2, 3].async { print(value) }
Check the official README

Growth

Growth trends · Last 30 days

3,713 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
5
Open PRs
33

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • swift
Stars
3,713
Forks
230
Watchers
152
Open issues
46
Contributors
63
Owner type
Organization
Primary language
Swift
License
Apache-2.0
Repository last updated
Oct 5, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?