Concurrency

0.0.3

concurrency is a collection of concurrency primitives which helps increase testability
space-code/concurrency

What's New

0.0.3

2023-05-27T13:36:05Z

concurrency: A collection of concurrency primitives

concurrency

License Platform Swift5.5 CI

Description

concurrency is a collection of concurrency primitives which helps increase testability

Usage

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.

import TestConcurrency

let testQueue = TestDispatchQueue()

// Run block immediately
testQueue.async {}

Requirements

  • iOS 13.0+ / macOS 10.15+ / tvOS 11.0+ / watchOS 6.0+
  • Xcode 14.0
  • Swift 5.5

Installation

Swift Package Manager

The Swift 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.

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

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, nv3212@gmail.com

License

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

Description

  • Swift Tools 5.5.0
View More Packages from this Author

Dependencies

  • None
Last updated: Sun Apr 14 2024 00:38:10 GMT-0900 (Hawaii-Aleutian Daylight Time)