A concurrency library for go.

Also see the introductory blog post Simplifying go concurrency with Future


go get github.com/stephennancekivell/go-future


Create a future with a function that you want to run in a go routine, get use .Get() to get the value, waiting for it if its not ready.

f := future.New(func() string {
    return "value"

value := f.Get()

If you have a list of futures you can transform them into a single Future with Sequence or Traverse

var someFutures []Future[T] // eg
f := future.Sequence(someFutures)

valuesSlice := f.Get()

If you have two futures and want the fastest result you can use can use Race.

var fa Future[T]
var fb Future[T]

f := future.Race(fa, fb)

fastestResult := f.Get()


View Github