https://github.com/puerkitobio/rehttp
Package rehttp implements a Go HTTP transport that handles retries.
https://github.com/puerkitobio/rehttp
http-client retry
Last synced: 3 months ago
JSON representation
Package rehttp implements a Go HTTP transport that handles retries.
- Host: GitHub
- URL: https://github.com/puerkitobio/rehttp
- Owner: PuerkitoBio
- License: bsd-3-clause
- Created: 2016-02-15T17:30:34.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-03-02T22:32:40.000Z (over 1 year ago)
- Last Synced: 2025-06-06T02:23:51.598Z (4 months ago)
- Topics: http-client, retry
- Language: Go
- Size: 84 KB
- Stars: 219
- Watchers: 4
- Forks: 17
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# rehttp [](https://github.com/PuerkitoBio/rehttp/actions) [](https://pkg.go.dev/github.com/PuerkitoBio/rehttp)
Package rehttp implements an HTTP Transport (an `http.RoundTripper`) that handles retries. See the [godoc][] for details.
Please note that rehttp requires Go1.6+, because it uses the `http.Request.Cancel` field to check for cancelled requests. It *should* work on Go1.5, but only if there is no timeout set on the `*http.Client`. Go's stdlib will return an error on the first request if that's the case, because it requires a `RoundTripper` that implements the (now deprecated in Go1.6) `CancelRequest` method.
On Go1.7+, it uses the context returned by `http.Request.Context` to check for cancelled requests.
## Installation
$ go get github.com/PuerkitoBio/rehttp
## License
The [BSD 3-Clause license][bsd].
[bsd]: http://opensource.org/licenses/BSD-3-Clause
[godoc]: http://godoc.org/github.com/PuerkitoBio/rehttp