Skip to content

ThinkChaos/parcour

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parcour

Parcour is a Go module with goal of making parallelism and concurrency patterns easy.

The name is a mashup of parallelism and concurrency: parallelism concurrency, and the original/french spelling of parkour.

JobGroup for Structured Concurrency

The jobgroup.JobGroup type is similar to a nursery as described in notes on structured concurrency.

From a Go perspective, it is meant to be passed around instead of a context, and functions use the Go method instead of the go keyword.
This expands user driven cancellation and timeouts, benefits of a context, to also allow user driven concurrency limits, and ensuring goroutines have an explicit scope/lifetime.

Zync

The zync module exposes basic synchronization primitives based on their counterparts from the Go standard sync module that are less error prone and use generics.
See each type's documentation for details.

Atomix

The zync/atomix module exposes wrappers for sync/atomic.

Stability

In accordance with semantic versioning, no stability guarantees are made for 0.x releases.
Patch releases will try to keep things compatible as much as possible, but break things if required to fix bugs.