heimdall
An enhanced HTTP client for Go (by gojek)
go-retryablehttp
Retryable HTTP client in Go (by hashicorp)
heimdall | go-retryablehttp | |
---|---|---|
4 | 3 | |
2,559 | 1,847 | |
0.4% | 1.8% | |
0.0 | 3.7 | |
17 days ago | 10 days ago | |
Go | Go | |
Apache License 2.0 | Mozilla Public License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
heimdall
Posts with mentions or reviews of heimdall.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-13.
-
Heimdall hystrix circuit breaking
I would suggest reading the code for the hystrix part: https://github.com/gojek/heimdall/tree/master/hystrix It is not very complex, but I see things like error threshold, so it might already be doing what you want.
- Any http client framework?
-
Can you share some Go package that you think has high quality clean code?
Heimdall HTTP Client
go-retryablehttp
Posts with mentions or reviews of go-retryablehttp.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-03-22.
- Network Error Handling
-
Building with the GitHub API
Both cases can be mitigated with automated retries. We went with hashicorp/go-retryablehttp as Echoes is built in Go. The library's default retry policy rightly doesn't consider a 401 response as a recoverable error, but this can be changed using the [CheckRetry hook](https://pkg.go.dev/github.com/hashicorp/go-retryablehttp#CheckRetry).
- Any http client framework?
What are some alternatives?
When comparing heimdall and go-retryablehttp you can also consider the following projects:
go-http-client - An enhanced and lightweight http client for Golang
resty - Simple HTTP and REST client library for Go
fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
ghinstallation - HTTP Round Tripper for GitHub Apps - Authenticate as an Installation Workflow
github - Go library for accessing the GitHub v3 API
contact - Retryable HTTP client in Go.
retry-go - Simple golang library for retry mechanism
req - Simple Go HTTP client with Black Magic
httpretry - Enriches the standard go http client with retry functionality.
go-req - Declarative golang HTTP client
requests - HTTP requests for Gophers