heimdall
go-cleanhttp
heimdall | go-cleanhttp | |
---|---|---|
4 | 1 | |
2,559 | 359 | |
0.4% | 1.4% | |
0.0 | 0.0 | |
17 days ago | over 1 year ago | |
Go | Go | |
Apache License 2.0 | Mozilla Public License 2.0 |
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
-
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-cleanhttp
-
Rust without the async (hard) part
Yes - `DefaultClient` in `net/http` is what the various package level methods operate on. This is constitutionally bad as global state that dependencies can mutate at will during init (or any other time), hence go-cleanhttp [1].
[1]: https://github.com/hashicorp/go-cleanhttp
What are some alternatives?
go-http-client - An enhanced and lightweight http client for Golang
contact - Retryable HTTP client in Go.
fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
resty - Simple HTTP and REST client library for Go
gev - 🚀Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.
httpx - Reliable HTTP for GoLang
req - Simple Go HTTP client with Black Magic
httpretry - Enriches the standard go http client with retry functionality.
go-otelroundtripper - Go http.RoundTripper that emits open telemetry metrics. This helps you easily get metrics for all external APIs you interact with.