{"id":13908343,"url":"https://github.com/uber/swift-concurrency","last_synced_at":"2025-08-09T03:20:58.453Z","repository":{"id":53761458,"uuid":"131352298","full_name":"uber/swift-concurrency","owner":"uber","description":"Concurrency utilities for Swift","archived":false,"fork":false,"pushed_at":"2023-03-19T07:09:18.000Z","size":86,"stargazers_count":326,"open_issues_count":5,"forks_count":37,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-25T17:46:03.417Z","etag":null,"topics":["concurrency-library","concurrency-utilities","ios","ios-lib","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-04-27T23:03:59.000Z","updated_at":"2024-11-02T18:06:40.000Z","dependencies_parsed_at":"2024-01-18T05:08:03.114Z","dependency_job_id":"c2b28370-b1f1-422a-ac59-835d1cae70b0","html_url":"https://github.com/uber/swift-concurrency","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/uber/swift-concurrency","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fswift-concurrency","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fswift-concurrency/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fswift-concurrency/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fswift-concurrency/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uber","download_url":"https://codeload.github.com/uber/swift-concurrency/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fswift-concurrency/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259308162,"owners_count":22837974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["concurrency-library","concurrency-utilities","ios","ios-lib","swift"],"created_at":"2024-08-06T23:02:39.425Z","updated_at":"2025-06-11T17:40:10.913Z","avatar_url":"https://github.com/uber.png","language":"Swift","readme":"# Swift Concurrency\n\n[![Build Status](https://travis-ci.com/uber/swift-concurrency.svg?branch=master)](https://travis-ci.com/uber/swift-concurrency?branch=master)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n\n## Contents\n\n- [Requirements](#requirements)\n- [Overview](#overview)\n- [Installation](#installation)\n- [Building](#building)\n- [Testing](#testing)\n\n## Requirements\n\n- Xcode 9.3+\n- Swift 4.0+\n\n## Overview\n\nA set of concurrency utility classes used by Uber. These are largely inspired by the equivalent [java.util.concurrent](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html) package classes.\n\n### `AtomicBool`\nProvides locking-free synchronization of a mutable `Bool`. It provides higher performance than using locks to ensure thread-safety and synchronization correctness.\n\n### `AtomicInt` \nProvides locking-free synchronization of a mutable `Int`. It provides higher performance than using locks to ensure thread-safety and synchronization correctness.\n\n### `AtomicReference`\nProvides locking-free synchronization of a mutable object reference. It provides higher performance than using locks to ensure thread-safety and synchronization correctness.\n\n### `CountDownLatch`\nA utility class that allows coordination between threads. A count down latch starts with an initial count. Threads can then decrement the count until it reaches zero, at which point, the suspended waiting thread shall proceed. A `CountDownLatch` behaves differently from a `DispatchSemaphore` once the latch is open. Unlike a semaphore where subsequent waits would still block the caller thread, once a `CountDownLatch` is open, all subsequent waits can directly passthrough.\n\n### `ConcurrentSequenceExecutor`\nAn execution utility that executes sequences of tasks and returns the final result in a highly concurrent environment.\n\n### `SerialSequenceExecutor`\nA debugging executor that executes sequences of tasks and returns the final result serially on the caller thread.\n\n## Installation\n\n### Carthage\n\n[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with dylib frameworks.\n\nYou can install Carthage with [Homebrew](http://brew.sh/) using the following command:\n\n```bash\n$ brew update\n$ brew install carthage\n```\n\nTo integrate Swift-Concurrency into your Xcode project using Carthage, specify it in your `Cartfile`:\n\n```ogdl\ngithub \"https://github.com/uber/swift-concurrency.git\" ~\u003e 0.4.0\n```\n\nRun `carthage update` to build the framework and add the built `Concurrency.framework` into your Xcode project, by following the [instructions](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application)\n\n### Manually\n\nIf you prefer not to use Carthage, you can integrate Swift-Concurrency into your project manually, by adding the source files.\n\n## Building\n\nFirst fetch the dependencies:\n\n```bash\n$ swift package fetch\n```\n\nYou can then build from the command-line:\n\n```bash\n$ swift build\n```\n\nOr create an Xcode project and build using the IDE:\n\n```bash\n$ swift package generate-xcodeproj\n```\n\n## Testing\n\nFrom command-line.\n\n```bash\n$ swift test\n```\n\nOr you can follow the steps above to generate a Xcode project and run tests within Xcode.\n\n## Related projects\n\nIf you like Needle, check out other related open source projects from our team:\n- [Needle](https://github.com/uber/needle): a compile-time safe Swift dependency injection framework.\n- [Swift Abstract Class](https://github.com/uber/swift-abstract-class): a light-weight library along with an executable that enables compile-time safe abstract class development for Swift projects.\n- [Swift Common](https://github.com/uber/swift-common): common libraries used by this set of Swift open source projects.\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fuber%2Fswift-concurrency.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fuber%2Fswift-concurrency?ref=badge_large)\n","funding_links":[],"categories":["HarmonyOS","Swift"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuber%2Fswift-concurrency","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuber%2Fswift-concurrency","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuber%2Fswift-concurrency/lists"}