Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more β
Top 23 Go Goroutine Projects
-
ants
πππ ants is a high-performance and low-cost goroutine pool in Go./ ants ζ―δΈδΈͺι«ζ§θ½δΈδ½ζθη goroutine ζ± γ
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
goworker
goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers.
-
pool
:speedboat: a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
async
A safe way to execute functions asynchronously, recovering them in case of panic. It also provides an error stack aiming to facilitate fail causes discovery. (by StudioSol)
-
gollback
Go asynchronous simple function utilities, for managing execution of closures and callbacks
-
Hunch
Hunch provides functions like: All, First, Retry, Waterfall etc., that makes asynchronous flow control more intuitive.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
It's a pity Go didn't have structured concurrency: https://vorpus.org/blog/notes-on-structured-concurrency-or-g...
There's a library for it: https://github.com/sourcegraph/conc
But this goes to one of the things I've been kind of banging on about languages, which is that if it's not in the language, or at least the standard library right at the beginning, sometimes it almost might as well not exist. Sometimes a new language can be valuable, even if it has no "new" language features, just to get a chance to reboot the standard library it has and push for patterns that older languages are theoretically capable of, but they just don't play well with any of the libraries in the language. Having it as a much-later 3rd party library just isn't good enough.
(In fact if I ever saw a new language start up and that was basically its pitch, I'd be very intrigued; it would show a lot of maturity in the language designer.)
I do that of course, and that's one of the easiest ways to use async Rust. In real projects you need much more however. F.ex. I had to code an example of how to add tasks to an already running pool of tasks and posted my findings here: https://github.com/dimitarvp/rust-async-examples/blob/main/e... (there's #2 as well with some more comments and a different approach).
The fact that I needed to make a GitHub repo and start making show-and-tell demos on how to do various things with async Rust to me is both a red flag and me being diligent BUT it should be more obvious. And promoted in docs.
Rust started suffering from "you got all the nuts and bolts in place, now build your own solution, son" syndrome which I grew to dislike. Too low-level. I wouldn't mind something akin to e.g. Golang's flowmatic library (check the first two examples at the top of the README): https://github.com/carlmjohnson/flowmatic
Go Goroutines related posts
- The Case of a Leaky Goroutine
- Go CLI to calculate total media duraton in directories
- Building conc: Better structured concurrency for Go
- Building conc: Better structured concurrency for Go
- ResultGroup: Go lib for concurrent tasks & errors management
- Hello gophers, show me your concurrent code
- A lot of boilerplate code when writing asynchronous code in go
-
A note from our sponsor - InfluxDB
www.influxdata.com | 26 Apr 2024
Index
What are some of the best open-source Goroutine projects in Go? This list will help you:
Project | Stars | |
---|---|---|
1 | ants | 12,070 |
2 | conc | 8,402 |
3 | tunny | 3,770 |
4 | goworker | 2,767 |
5 | pond | 1,219 |
6 | grpool | 737 |
7 | pool | 722 |
8 | gowp | 489 |
9 | go-floc | 264 |
10 | flowmatic | 239 |
11 | Goflow | 218 |
12 | artifex | 183 |
13 | roumon | 173 |
14 | semaphore go | 166 |
15 | neilotoole/errgroup | 157 |
16 | broadcast | 143 |
17 | cyclicbarrier | 137 |
18 | Syncs | 132 |
19 | async | 130 |
20 | gollback | 116 |
21 | go-actor | 115 |
22 | threadpool | 98 |
23 | Hunch | 97 |
Sponsored