86 Resources
Golang concurrency Libraries
The fastest file download client
Pget - The fastest file download client Description Multi-Connection Download using parallel requests. Fast Resumable Cross-compiled (windows, linux,
Sample code snippet to familiarize golang . Concept of goroutines , channels, concurrency is implemented in a sample scenario
go-mysql-goroutines-channel Sample code snippet to familiarize golang . Concept of goroutines , channels, concurrency , interface, slice, error handli
Practical concurrency guide in Go, communication by channels, patterns
Go Concurrency Guide This guide is built on top of the some examples of the book Go Concurrency in Go and Go Programming Language Race Condition and D
Simple tuning work for go programs in high concurrency scenarios.
go-program-tuning Simple tuning work for go programs in high concurrency scenarios. Installation Run the following command under your project: go get
Batch processing library for Go supports generics & values returning
Aggregator Aggregator is a batch processing library for Go supports returning values. You can group up and process batch of tasks with keys in a singl
ZeroMQ core engine in C++, implements ZMTP/3.1
ZeroMQ Welcome The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided
concurrency-limiter allows you to limit the number of goroutines accessing a resource with support for timeouts
concurrency-limiter allows you to limit the number of goroutines accessing a resource with support for timeouts , dynamic priority of goroutines and context cancellation of goroutines.
A collection of tools for Golang, focusing on concurrency and goroutines
A collection of tools for Golang, focusing on concurrency and goroutines
Package queue gives you a queue group accessibility
package queue gives you a queue group accessibility. Helps you to limit goroutines, wait for the end of the all goroutines and much more.
Go-concurrency-patterns - Sample concurrency patterns with Goroutines
About This sample project provides some concurrency pattern examples in Go using
G文⚡️: Concurrency-safe, Free and Unlimited google translate api for Golang. 🔥免费、无限、并发安全的谷歌翻译包
Googletrans G文 ⚡️ : Concurrency-safe, free and unlimited golang library that implemented Google Translate API. Inspired by py-googletrans. Features Ou
Static analyser for finding Deadlocks in Go
dingo-hunter Static analyser for finding Deadlocks in Go This is a static analyser to model concurrency and find deadlocks in Go code. The main purpos
Concurrency and synchronization primitives
Syncs - additional synchronization primitives Package syncs provides additional synchronization primitives. Install and update go get -u github.com/go
`kawipiko` -- blazingly fast static HTTP server -- focused on low latency and high concurrency, by leveraging Go, `fasthttp` and the CDB embedded database
kawipiko -- blazingly fast static HTTP server kawipiko is a lightweight static HTTP server written in Go; focused on serving static content as fast an
High performance, type safe, concurrency limiting worker pool package for golang!
GOWP Package gowp (Go Worker-Pool) provides concurrency limiting, error propagation, and Context cancellation for a group of workers/goroutines. Featu
Testing helper for concurrency
stop-and-go Testing helper for concurrency Install go get -u github.com/elgohr/stop-and-go Usage func TestExample(t *testing.T) { w1 := wait.NewWaite
gpool - a generic context-aware resizable goroutines pool to bound concurrency based on semaphore.
gpool - a generic context-aware resizable goroutines pool to bound concurrency. Installation $ go get github.com/sherifabdlnaby/gpool import "github.c
A Go implementation of Rust's evmap
A Go implementation of Rust's evmap which optimizes for high-read, low-write workloads and uses eventual consistency to ensure that readers and writers never block each other.
Gossh is a high-performance and high-concurrency ssh tool. Issues and ⭐ are welcome:)
GoSSH Gossh is a high-performance and high-concurrency ssh tool. This tool can efficiently manage tens of thousands of Linux server clusters. It can e
SGPM: A coroutine scheduling model for wound-wait concurrency control optimization
Environment set up off the mod go env -w GO111MODULE=off change to GPATH to project directory go env -w GOPATH=$HOME/sgpm Usage This project serves th
Fast Concurrent / Parallel Sorting in Go
sorty sorty is a type-specific, fast, efficient, concurrent / parallel QuickSort implementation (with an enhanced InsertionSort as subroutine). It is
A collection of useful utility functions
util A group of generic useful utility functions Dependencies parallelizer github.com/shomali11/parallelizer Examples Concurrency package main import
Understand go concurrency
CONTENT (click to expand or hide) What is Concurrency? Why we need to think about Concurrency? What is a Process? What is a Thread? Thread_States C10k
How to work with channels, goroutines, tickers, mutexes and context cancelation
Concurrency tasks This page holds 4 concurrency practical tasks to help you to understand how to write concurrent code. They will help you to understa
This example showcases an event-sourced CQRS system based on github.com/romshark/eventlog
Eventlog Example This example is showcasing an eventually consistent, fault-tolerant, event sourced system following the CQRS (Command-Query-Responsib
Tiny Go tool for running multiple functions concurrently and collecting their results into an error slice.
Overview Short for "ConCurrent". Tiny Go tool for running multiple functions concurrently and collecting their results into an error slice. Dependency
Pengenalan Concurrency dan Parallel Programming
Golang Goroutine Sumber Tutorial: Udemy Slide Pengenalan Concurrency dan Parallel Programming Pengenalan Parallel Programming Saat ini kita hidup dima
A CLI based Downloader utilising Golang's concurrency feature.
Downloader CLI based downloader utilising the concurrency feature of Golang. Takes the download URL of the file from the user. Splits the files into s
Go lang concurrency with channels and worker pools using sync.Pools.
Go Concurrency Go lang concurrency with channels and worker pools using sync.Pools. Concurrency Concurrency is an ability of a program to do multiple
a self terminating concurrent job queue for indeterminate workloads in golang
jobtracker - a self terminating concurrent job queue for indeterminate workloads in golang This library is primarily useful for technically-recursive
Concurrency Lab examples on Go
Concurrency Lab 1 If you're stuck look at examples on Go by Example Using the lab sheet There are two ways to use the lab sheet, you can either: creat
A concurrent Download Manager written in Go
golang-download-manager A concurrent Download Manager written in Go Changes In main.go file paste the file url in fileUrl variable paste the path for
Concurrency Lab 2 Go Example
Concurrency Lab 2 If you're stuck look at examples on Go by Example Using the lab sheet There are two ways to use the lab sheet, you can either: creat
Concurrency Lab 1 Go Example
Concurrency Lab 1 If you're stuck look at examples on Go by Example Using the lab sheet There are two ways to use the lab sheet, you can either: creat
A broadcasting library for Go
broadcast A broadcasting library for Go. What? broadcast is a library that allows sending repeated notifications to multiple goroutines with guarantee
File Processor in Concurrency Pattern using Golang goroutine.
File Processor in Concurrency Pattern Implement a file processor solution in concurrency pattern using Golang goroutine. Get Started Run docker-compos
A concurrent rate limiter library for Golang based on Sliding-Window rate limiter algorithm.
ratelimiter A generic concurrent rate limiter library for Golang based on Sliding-window rate limitng algorithm. The implementation of rate-limiter al
This repository collects common concurrency patterns in Golang
Go Concurrency Patterns This repository collects common concurrency patterns in Golang Materials Concurrency is not parallelism Go Concurrency Pattern
A faster RWLock primitive in Go, 2-3 times faster than RWMutex. A Go implementation of concurrency control algorithm in paper Left-Right - A Concurrency Control Technique with Wait-Free Population Oblivious Reads
Go Left Right Concurrency A Go implementation of the left-right concurrency control algorithm in paper Left-Right - A Concurrency Control Technique w
yakv is a simple, in-memory, concurrency-safe key-value store for hobbyists.
yakv (yak-v. (originally intended to be "yet-another-key-value store")) is a simple, in-memory, concurrency-safe key-value store for hobbyists. yakv provides persistence by appending transactions to a transaction log and restoring data from the transaction log on startup.
Concurrency in Go video course with in depth explanations & examples
Concurrency in Go Summary Coding Examples Introduction to Concurrency Go Routines Channels Select Concurrency Patterns Atomics Wait Groups - sync.Wait
dagger is a fast, concurrency safe, mutable, in-memory directed graph library with zero dependencies
dagger is a blazing fast, concurrency safe, mutable, in-memory directed graph implementation with zero dependencies
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.
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.
Job worker service that provides an API to run arbitrary Linux processes.
Job Scheduler Summary Prototype job worker service that provides an API to run arbitrary Linux processes. Overview Library The library (Worker) is a r
Helper library for full uint64 randomness, pool backed for efficient concurrency
fastrand64-go Helper library for full uint64 randomness, pool backed for efficient concurrency Inspired by https://github.com/valyala/fastrand which i
Reactive Extensions for the Go language.
RxGo Reactive Extensions for the Go Language ReactiveX ReactiveX, or Rx for short, is an API for programming with Observable streams. This is the offi
Build systems with Go examples
What is this? This is a repository containing all the examples from the book BUILD SYSTEMS with GO (and save the world). This book is written to help
a thread-safe concurrent map for go
concurrent map As explained here and here, the map type in Go doesn't support concurrent reads and writes. concurrent-map provides a high-performance
Pholcus is a distributed high-concurrency crawler software written in pure golang
Pholcus Pholcus(幽灵蛛)是一款纯 Go 语言编写的支持分布式的高并发爬虫软件,仅用于编程学习与研究。 它支持单机、服务端、客户端三种运行模式,拥有Web、GUI、命令行三种操作界面;规则简单灵活、批量任务并发、输出方式丰富(mysql/mongodb/kafka/csv/excel等
go-wrk - a HTTP benchmarking tool based in spirit on the excellent wrk tool (https://github.com/wg/wrk)
go-wrk - an HTTP benchmarking tool go-wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CP
concurrency utilities
concurrent concurrent.Map: backport sync.Map for go below 1.9 concurrent.Executor: goroutine with explicit ownership and cancellable concurrent.Map be
Verifying concurrent crash-safe systems
Verifying concurrent, crash-safe systems with Perennial Perennial is a system for verifying correctness for systems with both concurrency and crash-sa
:zap: Go web framework benchmark
go-web-framework-benchmark This benchmark suite aims to compare the performance of Go web frameworks. It is inspired by Go HTTP Router Benchmark but t
Machine is a zero dependency library for highly concurrent Go applications.
Machine is a zero dependency library for highly concurrent Go applications. It is inspired by errgroup.Group with extra bells & whistles
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
:zap: Go web framework benchmark
go-web-framework-benchmark This benchmark suite aims to compare the performance of Go web frameworks. It is inspired by Go HTTP Router Benchmark but t
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
Concurrency limiting goroutine pool
workerpool Concurrency limiting goroutine pool. Limits the concurrency of task execution, not the number of tasks queued. Never blocks submitting task
Minimalistic and High-performance goroutine worker pool written in Go
pond Minimalistic and High-performance goroutine worker pool written in Go Motivation This library is meant to provide a simple way to limit concurren
Run functions in parallel :comet:
Parallel fn Run functions in parallel. Limit the number of goroutines running at the same time. Installation go get -u github.com/rafaeljesus/parallel
Structured Concurrency in Go
nursery: structured concurrency in Go RunConcurrently( // Job 1 func(context.Context, chan error) { time.Sleep(time.Millisecond * 10)
Hunch provides functions like: All, First, Retry, Waterfall etc., that makes asynchronous flow control more intuitive.
Hunch Hunch provides functions like: All, First, Retry, Waterfall etc., that makes asynchronous flow control more intuitive. About Hunch Go have sever
gpool - a generic context-aware resizable goroutines pool to bound concurrency based on semaphore.
gpool - a generic context-aware resizable goroutines pool to bound concurrency. Installation $ go get github.com/sherifabdlnaby/gpool import "github.c
golang worker pool , Concurrency limiting goroutine pool
golang worker pool 中文说明 Concurrency limiting goroutine pool. Limits the concurrency of task execution, not the number of tasks queued. Never blocks su
👷 Library for safely running groups of workers concurrently or consecutively that require input and output through channels
Examples Quickstart Multiple Go Workers Passing Fields Getting Started Pull in the dependency go get github.com/catmullet/go-workers Add the import to
A sync.WaitGroup with error handling and concurrency control
go-waitgroup How to use An package that allows you to use the constructs of a sync.WaitGroup to create a pool of goroutines and control the concurrenc
Alternative sync library for Go
Alternative sync library for Go. Overview Future - A placeholder object for a value that may not yet exist. Promise - While futures are defined as a t
Code Generation for Functional Programming, Concurrency and Generics in Golang
goderive goderive derives mundane golang functions that you do not want to maintain and keeps them up to date. It does this by parsing your go code fo
Image processing algorithms in pure Go
bild A collection of parallel image processing algorithms in pure Go. The aim of this project is simplicity in use and development over absolute high
A ZX Spectrum Emulator written in Go
GoSpeccy - An evolving ZX Spectrum 48k Emulator GoSpeccy is a free ZX Spectrum (Speccy for friends) emulator written in Go. Quick start Installing and
A package to allow one to concurrently go through a filesystem with ease
skywalker Skywalker is a package to allow one to concurrently go through a filesystem with ease. Features Concurrency BlackList filtering WhiteList fi
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
Concurrency-safe Go caching library with expiration capabilities and access counters
cache2go Concurrency-safe golang caching library with expiration capabilities. Installation Make sure you have a working Go environment (Go 1.2 or hig
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
Pipelines using goroutines
pipeline This package provides a simplistic implementation of Go pipelines as outlined in Go Concurrency Patterns: Pipelines and cancellation. Docs Go
A simple set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.
golang-set The missing set collection for the Go language. Until Go has sets built-in...use this. Coming from Python one of the things I miss is the s
Go concurrent-safe, goroutine-safe, thread-safe queue
goconcurrentqueue - Concurrent safe queues The package goconcurrentqueue offers a public interface Queue with methods for a queue. It comes with multi
A simple logging interface that supports cross-platform color and concurrency.
WLog Package wlog creates simple to use UI structure. The UI is used to simply print to the screen. There a wrappers that will wrap each other to crea
JOB, make your short-term command as a long-term job. 将命令行规划成任务的工具
job make your short-term command as a long-term job Install Shell Install (Linux & MacOS) # binary will be $(go env GOPATH)/bin/job $: curl -sfL https
Concurrency-safe Go caching library with expiration capabilities and access counters
cache2go Concurrency-safe golang caching library with expiration capabilities. Installation Make sure you have a working Go environment (Go 1.2 or hig
Slack Bot Framework
slacker Built on top of the Slack API github.com/slack-go/slack with the idea to simplify the Real-Time Messaging feature to easily create Slack Bots,