Awesome Go

Goroutines

53 libraries in this category

ants

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

14,515GoroutinesGoroutines
conc

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

10,432GoroutinesGoroutines
tunny

Goroutine pool for golang

4,022GoroutinesGoroutines
goworker

goworker is a Go-based background worker

2,847GoroutinesGoroutines
pond

Minimalistic and High-performance goroutine worker pool written in Go

2,201GoroutinesGoroutines
rill

Go toolkit for clean, composable, channel-based concurrency

1,887GoroutinesGoroutines
workerpool

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

1,460GoroutinesGoroutines
grpool

Lightweight Goroutine pool

731GoroutinesGoroutines
pool

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

721GoroutinesGoroutines
gowp

gowp is concurrency limiting goroutine pool

517GoroutinesGoroutines
flowmatic

Structured concurrency made easy

403GoroutinesGoroutines
async

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

315GoroutinesGoroutines
go-actor

A tiny library for writing concurrent programs using actor model

311GoroutinesGoroutines
routine

`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

291GoroutinesGoroutines
go-floc

Orchestrate goroutines with ease

268GoroutinesGoroutines
go-flow

Control goroutines execution order

221GoroutinesGoroutines
artifex

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

214GoroutinesGoroutines
semaphore

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

178GoroutinesGoroutines
neilotoole/errgroup

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

162GoroutinesGoroutines
cyclicbarrier

CyclicBarrier for golang

158GoroutinesGoroutines
async

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

138GoroutinesGoroutines
gollback

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

121GoroutinesGoroutines
go-future

A Future/Promise library with generic combinators and a DAG execution engine

106GoroutinesGoroutines
Hunch

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

103GoroutinesGoroutines
threadpool

Golang threadpool implementation

103GoroutinesGoroutines
semaphore

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

102GoroutinesGoroutines
worker-pool

goworker is a Go simple async worker pool

93GoroutinesGoroutines
gpool

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

89GoroutinesGoroutines
goccm

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

73GoroutinesGoroutines
gowl

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

71GoroutinesGoroutines
nursery

Structured concurrency in Go

71GoroutinesGoroutines
routine

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

63GoroutinesGoroutines
gohive

A highly performant and easy to use Goroutine pool for Go

54GoroutinesGoroutines
kyoo

Provides an unlimited job queue and concurrent worker pools

50GoroutinesGoroutines
go-waitgroup

Like `sync.WaitGroup` with error handling and concurrency control

49GoroutinesGoroutines
parallel-fn

Run functions in parallel

37GoroutinesGoroutines
go-trylock

TryLock support on read-write lock for Golang

35GoroutinesGoroutines
channelify

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

34GoroutinesGoroutines
stl

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

30GoroutinesGoroutines
execpool

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

29GoroutinesGoroutines
goscade

Minimalistic lifecycle orchestrator for Go components with dependency graphs, startup sequencing, readiness coordination, and graceful shutdown

24GoroutinesGoroutines
breaker

Flexible mechanism to make execution flow interruptible

21GoroutinesGoroutines
concurrency-limiter

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

18GoroutinesGoroutines
conexec

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

18GoroutinesGoroutines
async

An asynchronous task package with async/await style for Go

17GoroutinesGoroutines
go-tools/multithreading

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

17GoroutinesGoroutines
go-workerpool

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

13GoroutinesGoroutines
async-job

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

12GoroutinesGoroutines
go-accumulator

Solution for accumulation of events and their subsequent processing

11GoroutinesGoroutines
hands

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

10GoroutinesGoroutines
anchor

Library to manage component lifecycle in microservice architectures

6GoroutinesGoroutines
autopool

Zero-config, auto-scaling worker pool for Go with priority-aware scheduling

6GoroutinesGoroutines
powerlock

Named FIFO mutexes with context cancellation, bounded wait queues, watchdog diagnostics, pprof profiles, and Prometheus metrics

3GoroutinesGoroutines