goneric
go-future
goneric | go-future | |
---|---|---|
5 | 1 | |
18 | 35 | |
- | - | |
4.1 | 10.0 | |
about 1 year ago | almost 2 years ago | |
Go | Go | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
goneric
-
(Rust) Tokio, FuturesUnordered, and the Thundering Herd Problem
Only thing missing from making it look and work as traditional async is lack of pre-processor to make it "look nice". Generics do make it a bit better, for example from my lib you can introduce some concurrency quite easily, for example
-
Conc: Better Structured Concurrency for Go
I do like idea of waitgroup on steroids, I might steal it for my generic library.
* [1] https://github.com/XANi/goneric/blob/master/worker.go#L92
-
Have yet to use generics...Am I missing out?
Shameless plug: here is a list of some useful stuff you can do with it, with code attached.
-
I've created a Go Generics cheatsheet to give you a quick reminder of how to use this feature
If someone wants some more examples I've made a lib with a bunch of common constructs. Fun ones include "run function in parallel on a slice and put it in output slice in order" or "return which elements are different between slices", with version allowing to easily get difference between 2 different types using conversion function
- Spawn multiple go routines, get the results back, in order of goroutine spawn...
go-future
-
Conc: Better Structured Concurrency for Go
Great project. It seems like channels are just the wrong tool for a lot of concurrency problems. More powerful than needed and easy to get wrong. Lots of nice ways to make go concurrency safer.
The problem that bothers me (and isnt in Conc), is how hard it is to run different things in the background and gather the results in different ways. Particularly when you start doing those things conditionally and reusing results.
Something like go-future helps. https://github.com/stephennancekivell/go-future
What are some alternatives?
dskDitto - Super fast duplicate file finder written in Golang.
go-recovery - Golang recover from panics
conc - Better structured concurrency for go
ants - πππ ants is a high-performance and low-cost goroutine pool in Go./ ants ζ―δΈδΈͺι«ζ§θ½δΈδ½ζθη goroutine ζ± γ
advent-of-code-2022 - Advent of Code 2022
lo - π₯ A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
sourcegraph - Code AI platform with Code Search & Cody
Telegraf - Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.
new - A helper function to create a pointer to a new object in Go 1.18+