An open API service indexing awesome lists of open source software.

https://github.com/space-code/concurrency

concurrency is a collection of concurrency primitives which helps increase testability
https://github.com/space-code/concurrency

concurrency dispatch-queues swift

Last synced: about 2 months ago
JSON representation

concurrency is a collection of concurrency primitives which helps increase testability

Awesome Lists containing this project

README

        

![concurrency: A collection of concurrency primitives](https://raw.githubusercontent.com/space-code/concurrency/dev/Resources/concurrency.png)

concurrency


License
Platform
Swift5.5
CI

## Description
`concurrency` is a collection of concurrency primitives which helps increase testability

- [Usage](#usage)
- [Requirements](#requirements)
- [Installation](#installation)
- [Communication](#communication)
- [Contributing](#contributing)
- [Author](#author)
- [License](#license)

## Usage

```swift
import Concurrency

// Create `DispatchQueueFactory` instance
let factory = DispatchQueueFactory()

// Build `main` queue from factory
let mainQueue = factory.main()

// Build `global` queue with QOS
let globalQueue = factory.global(qos: .background)

// Build `private` queue
let privateQueue = factory.privateQueue(label: String(describing: self),
qos: .background,
attributes: .concurrent,
autoreleaseFrequency: .inherit,
target: nil)
```

For testing purposes, you can use `TestConrurrency` target.

```swift
import TestConcurrency

let testQueue = TestDispatchQueue()

// Run block immediately
testQueue.async {}
```

## Requirements
- iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+
- Xcode 14.0
- Swift 5.5

## Installation
### Swift Package Manager

The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. It is in early development, but `concurrency` does support its use on supported platforms.

Once you have your Swift package set up, adding `concurrency` as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`.

```swift
dependencies: [
.package(url: "https://github.com/space-code/concurrency.git", .upToNextMajor(from: "0.2.0"))
]
```

## Communication
- If you **found a bug**, open an issue.
- If you **have a feature request**, open an issue.
- If you **want to contribute**, submit a pull request.

## Contributing
Bootstrapping development environment

```
make bootstrap
```

Please feel free to help out with this project! If you see something that could be made better or want a new feature, open up an issue or send a Pull Request!

## Author
Nikita Vasilev, [email protected]

## License
concurrency is available under the MIT license. See the LICENSE file for more info.