OSS探訪GitHubでログイン

AsyncSequenceへmerge・combineLatest・debounce・throttleなど時間/順序algorithmを追加する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
3,713
主要言語
Swift
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

Swift Async AlgorithmsはAsyncSequenceとstructured concurrency向けalgorithm packageです。merge、combineLatest、zip、debounce、throttle、AsyncChannel、AsyncTimerSequenceなど、値の時間変化や複数async streamを扱う処理を共通APIとして提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

複数AsyncSequenceをmerge・combineLatest・zipで合成する

複数のasync inputを1つのsequenceへmergeしたり、最新値をtuple化するcombineLatest、対応する順序で組み合わせるzipなどを利用できます。

出典:[2]

debounce・throttle・timer・channelで時間とback pressureを扱う

debounce/throttleでevent頻度を制御し、AsyncTimerSequenceで周期event、AsyncChannel/AsyncThrowingChannelでback pressure付きのproducer-consumer flowを構成できます。

出典:[2]

向いている用途

search input・sensor/event stream・複数非同期sourceをSwift concurrencyで組み立てたい場合に向く

Combineなど別reactive frameworkを導入せず、async/awaitとAsyncSequenceを中心にevent streamをcomposeしたいSwift applicationに適します。

出典:[2]

導入前の確認

1.1.7はSwift tools 6.2で、AsyncStreamingはunstable trait扱い

Package.swiftはSwift tools 6.2とStrictConcurrencyを使用し、AsyncStreaming productはUnstableAsyncStreaming traitでsource-unstableとして明示されています。1.1.7ではAsyncStreamingのcompile errorが修正されていますが、stable APIが必要なlibraryではunstable traitへの依存を避けてください。

出典:[3][4]

参考にした公式資料

  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)
編集部からの補足

async/awaitとAsyncSequenceを中心にsearch inputやevent streamをcomposeしたいSwift appに向きます。AsyncStreamingはunstable traitなのでstable APIが必要なlibraryでは依存範囲を確認してください。

3ステップで試す

  1. 1

    Swift Async Algorithms 1.1.7をSwiftPMへ追加する

    確認済みreleaseを固定します。Package.swiftはSwift tools 6.2です。

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

    AsyncAlgorithms productをtargetへ追加する

    stableなAsyncAlgorithms moduleをtarget dependencyへ追加します。

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

    SequenceをAsyncSequenceとして処理する

    同期Sequenceをasync sequenceへ変換し、for-awaitで値を処理します。

    import AsyncAlgorithms for await value in [1, 2, 3].async { print(value) }
公式READMEで確認

成長

成長の推移 · 直近30日

3,713 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
5
Open PR
33

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • swift
Stars
3,713
Forks
230
Watchers
152
Open Issues
46
Contributors
63
所有者種別
Organization
主要言語
Swift
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?