Goroutines

Tools for managing and working with Goroutines.

ants13.2K

A high-performance and low-cost goroutine pool in Go.

conc9.6K

conc is your toolbelt for structured concurrency in go, making common tasks easier and safer.

tunny3.9K

Goroutine pool for golang.

goworker2.8K

goworker is a Go-based background worker.

pond1.6K

Minimalistic and High-performance goroutine worker pool written in Go.

rill1.5K

Go toolkit for clean, composable, channel-based concurrency.

workerpool1.4K

Goroutine pool that limits the concurrency of task execution, not the number of tasks queued.

grpool747

Lightweight Goroutine pool.

pool729

Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation.

gowp520

gowp is concurrency limiting goroutine pool.

flowmatic371

Structured concurrency made easy.

go-floc270

Orchestrate goroutines with ease.

routine242

routine is a ThreadLocal for go library. It encapsulates and provides some easy-to-use, non-competitive, high-performance goroutine context access interfaces, which can help you access coroutine context information more gracefully.

async231

An alternative sync library for Go (Future, Promise, Locks).

go-flow220

Control goroutines execution order.

artifex209

Simple in-memory job queue for Golang using worker-based dispatching.

semaphore176

Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations).

go-actor172

A tiny library for writing concurrent programs using actor model.

go-workers165

Easily and safely run workers for large data processing pipelines.

neilotoole/errgroup162

Drop-in alternative to sync/errgroup, limited to a pool of N worker goroutines.

cyclicbarrier149

CyclicBarrier for golang.

async137

A safe way to execute functions asynchronously, recovering them in case of panic.

gollback125

asynchronous simple function utilities, for managing execution of closures and callbacks.

Hunch104

Hunch provides functions like: All, First, Retry, Waterfall etc., that makes asynchronous flow control more intuitive.

semaphore103

Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context.

threadpool102

Golang threadpool implementation.

worker-pool92

goworker is a Go simple async worker pool.

gpool90

manages a resizeable pool of context-aware goroutines to bound concurrency.

goccm73

Go Concurrency Manager package limits the number of goroutines that allowed to run concurrently.

gowl70

Gowl is a process management and process monitoring tool at once. An infinite worker pool gives you the ability to control the pool and processes and monitor their status.

nursery68

Structured concurrency in Go.

routine61

go routine control with context, support: Main, Go, Pool and some useful Executors.

gohive52

A highly performant and easy to use Goroutine pool for Go.

kyoo50

Provides an unlimited job queue and concurrent worker pools.

go-waitgroup48

Like sync.WaitGroup with error handling and concurrency control.

parallel-fn36

Run functions in parallel.

go-trylock35

TryLock support on read-write lock for Golang.

channelify32

Transform your function to return channels for easy and powerful parallel processing.

stl30

Software transactional locks based on Software Transactional Memory (STM) concurrency control mechanism.

execpool29

A pool built around exec.Cmd that spins up a given number of processes in advance and attaches stdin and stdout to them when needed. Very similar to FastCGI or Apache Prefork MPM but works for any command.

breaker18

Flexible mechanism to make execution flow interruptible.

concurrency-limiter17

Concurrency limiter with support for timeouts, dynamic priority and context cancellation of goroutines.

conexec16

A concurrent toolkit to help execute funcs concurrently in an efficient and safe way. It supports specifying the overall timeout to avoid blocking and uses goroutine pool to improve efficiency.

go-tools/multithreading15

Manage a pool of goroutines using this lightweight library with a simple API.

go-workerpool12

Inspired from Java Thread Pool, Go WorkerPool aims to control heavy Go Routines.

async-job11

AsyncJob is an asynchronous queue job manager with light code, clear and speed.

hands10

A process controller used to control the execution and return strategies of multiple goroutines.

async9

An asynchronous task package with async/await style for Go.

go-accumulator7

Solution for accumulation of events and their subsequent processing.