Several synchronization primitives and task synchronization mechanisms introduced to aid in modern swift concurrency.

Overview

AsyncObjects

API Docs Swift Package Manager Compatible Carthage compatible Swift Platforms CI/CD Maintainability codecov

Several synchronization primitives and task synchronization mechanisms introduced to aid in modern swift concurrency.

Overview

While Swift's modern structured concurrency provides safer way of managing concurrency, it lacks many synchronization and task management features in its current state. AsyncObjects aims to close the functionality gap by providing following features:

  • Easier task cancellation with CancellationSource.
  • Introducing traditional synchronization primitives that work in non-blocking way with AsyncSemaphore and AsyncEvent.
  • Bridging with Grand Central Dispatch and allowing usage of GCD specific patterns with TaskOperation and TaskQueue.
  • Transferring data between multiple task boundaries with Future.
You might also like...
 An introduction to using Swift's new concurrency features in SwiftUI
An introduction to using Swift's new concurrency features in SwiftUI

SwiftUI Concurrency Essentials An introduction to using Swift's new concurrency features in SwiftUI Discuss with me · Report Bug · Request Feature Art

Type-safe networking with Swift Concurrency

AsyncRequest AsyncRequest is a type-safe framework for building a suite of requests to communicate with an API, built on top of Swift Concurrency. Ins

AsyncOperators brings some features of RxSwift/Combine to Structured Concurrency

AsyncOperators brings some features of RxSwift/Combine to Structured Concurrency, such as combineLatest and distinctUntilChanged.

Queues, timers, and task groups in Swift
Queues, timers, and task groups in Swift

Dispatcher eases the pain of using Grand Central Dispatch by introducing 4 new Swift classes. Dispatcher Queue Group Timer Requirements Swift 2.0+ Ins

Kommander is a Swift library to manage the task execution in different threads.
Kommander is a Swift library to manage the task execution in different threads.

A lightweight, pure-Swift library for manage the task execution in different threads. Through the definition a simple but powerful concept, Kommand.

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

Schedule(简体中文) Schedule is a timing tasks scheduler written in Swift. It allows you run timing tasks with elegant and intuitive syntax. Features Elega

A Task Queue Class developed in Swift (by Marin Todorov)
A Task Queue Class developed in Swift (by Marin Todorov)

TaskQueue Table of Contents Intro Installation CocoaPods Carthage Simple Examples Synchronous tasks Asynchronous tasks Serial and Concurrent Tasks GCD

AsyncTaskKit - contains some additions to async/await Task

AsyncTaskKit This repo contains some additions to async/await Task. In general i

Ten Elephants is the modern cooking app for iPhone.
Ten Elephants is the modern cooking app for iPhone.

Ten Elephants Ваш персональный гастро-ассистент на iPhone. Поиск по названию/ингредиентам Поиск блюд по ингредиентам Что популярно сегодня Случайное б

Comments
  • ci(Deps): bump JamesIves/github-pages-deploy-action from 4.3.3 to 4.3.4

    ci(Deps): bump JamesIves/github-pages-deploy-action from 4.3.3 to 4.3.4

    Bumps JamesIves/github-pages-deploy-action from 4.3.3 to 4.3.4.

    Release notes

    Sourced from JamesIves/github-pages-deploy-action's releases.

    v4.3.4

    Minor Changes

    • The branch parameter is no longer required. It now defaults to gh-pages.
    • Linting scripts have been updated to ensure that everything across the repo gets picked up.
    • Numerous dependency updates.

    New Contributors

    Sponsors ❤️

      

    Full Changelog: https://github.com/JamesIves/github-pages-deploy-action/compare/v4...v4.3.4

    Commits
    • e6d003d Deploy Production Code for Commit 95ad738c59a06cd63bac926396b36bb932c6c0c8 🚀
    • 95ad738 Merge branch 'dev' into releases/v4
    • face238 Prettier ignore
    • 95ff531 Use major version tags (#1152)
    • d45cebd Fix lint scripts (#1154)
    • c0e8d73 Set default branch to gh-pages (fix #1151) (#1155)
    • f7f029d Deploying to dev from @ JamesIves/github-pages-deploy-action@b6e885503b3ff910...
    • b6e8855 Update sponsors.yml
    • 8728dd1 Deploying to dev from @ JamesIves/github-pages-deploy-action@f86c712e7cfd763b...
    • f86c712 Update sponsors.yml
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
Releases(v1.0.0)
  • v1.0.0(Aug 17, 2022)

    1.0.0 (2022-08-17)

    💄 Styles

    • add swift-format for code formatting (001a1d2)
    • add vscode workspace settings (92c5810)

    🔥 Refactorings

    • refactor continuation management to prevent race condition (dfa3717)
    • use CheckedContinuation for debug mode or for ASYNCOBJECTS_USE_CHECKEDCONTINUATION flag (3899792)

    ✅ Tests

    • add async countdown event tests (8e07add)
    • add async event tests (ad42d72)
    • add async semaphore tests (fd075bd)
    • add future tests (43a209e)
    • add task queue tests (bbb8188)
    • add tests for cancellation source (3e81653)
    • add tests for multiple synchronization objects wait (dc56f4e)
    • add tests for structured concurrency-GCD bridge (7b36c93)
    • remove methods usage not supported on linux (485452c)

    🚀 Features

    • add barrier and block flags for TaskQueue (d3e566a)
    • add async countdown event (f138abc)
    • add async event (dc3090c)
    • add async semaphore (fbd6b65)
    • add cancellation source for controlling multiple tasks cooperative cancellation (b92665d)
    • add CocoaPods support (646db5b)
    • add operation type to bridge GCD/libdispatch with structured concurrency (51b302e)
    • add option to provide number of objects to wait for (20b5725)
    • add priority based task execution on TaskQueue (df5e6e7)
    • add task queue to run concurrent tasks and barrier tasks similar to DispatchQueue (84e4d29)
    • add transfering data across tasks with Future (d4d658f)
    • add wait for multiple synchronization objects (68702b5)

    📚 Documentation

    • add contributing guidelines (e4a78ee)
    • add docC calatalog for library (9e69dbb)
    • add github pages product specific documentation (05e1e30)
    • add installation and usage guidelines (0b4df47)
    Source code(tar.gz)
    Source code(zip)
    AsyncObjects-1.0.0.xcframework.zip(14.49 MB)
A complete set of primitives for concurrency and reactive programming on Swift

A complete set of primitives for concurrency and reactive programming on Swift 1.4.0 is the latest and greatest, but only for Swift 4.2 and 5.0 use 1.

AsyncNinja 156 Aug 31, 2022
Functional Concurrency Primitives

Concurrent Concurrent is a collection of functional concurrency primitives inspired by Concurrent ML and Concurrent Haskell. Traditional approaches to

TypeLift 206 Dec 24, 2022
⚡️ Fast async task based Swift framework with focus on type safety, concurrency and multi threading

Our apps constantly do work. The faster you react to user input and produce an output, the more likely is that the user will continue to use your appl

Said Sikira 814 Oct 30, 2022
The projects and materials that accompany the Modern Concurrency in Swift book

Modern Concurrency in Swift: Materials This repo contains all the downloadable materials and projects associated with the Modern Concurrency in Swift

raywenderlich 137 Dec 16, 2022
Venice - Coroutines, structured concurrency and CSP for Swift on macOS and Linux.

Venice provides structured concurrency and CSP for Swift. Features Coroutines Coroutine cancelation Coroutine groups Channels Receive-only chan

Zewo 1.5k Dec 22, 2022
Slack message generator and API client, written in Swift with Result Builders and Concurrency

Slack Message Client This package provides a Swift object model for a Slack Block Kit message, as well as a Result Builder convenience interface for e

Mike Lewis 2 Jul 30, 2022
A Swift DSL that allows concise and effective concurrency manipulation

NOTE Brisk is being mothballed due to general incompatibilities with modern version of Swift. I recommend checking out ReactiveSwift, which solves man

Jason Fieldman 25 May 24, 2019
Tools for using Swift Concurrency on macOS 10.15 Catalina, iOS 13, tvOS 13, and watchOS 6.

ConcurrencyCompatibility Tools for using Swift Concurrency on macOS 10.15 Catalina, iOS 13, tvOS 13, and watchOS 6. Xcode 13.2 adds backwards deployme

Zachary Waldowski 9 Jan 3, 2023
A declarative state management and dependency injection library for SwiftUI x Concurrency

A declarative state management and dependency injection library for SwiftUI x Concurrency

Ryo Aoyama 199 Jan 1, 2023
Swift concurrency collection support

AsyncCollections Functions for running async processes on Swift Collections ForEach Run an async function on every element of a Sequence. await array.

Adam Fowler 11 Jul 11, 2022