HTTP Clients

26 projects

These packages make outbound HTTP calls easier than using net/http's Client directly. They add fluent request builders, JSON encoding and decoding, retries with backoff, circuit breaking, request hedging and, in a few cases, control over the TLS fingerprint a client presents. Most wrap net/http rather than replacing it, so transports, proxies and context cancellation behave as you would expect.

resty is the most widely used wrapper, with a chainable API, middleware hooks and retry support. imroc/req is a similar full-featured client with debugging and dumping built in, while dghubble/sling and carlmjohnson/requests stay closer to net/http and focus on composing requests. For resilience, HashiCorp's go-retryablehttp retries with backoff behind a standard-looking client, and Gojek's heimdall adds retries and Hystrix-style circuit breaking. go-cleanhttp returns clients that share no global state. Clients such as tls-client, azuretls-client and surf can mimic browser TLS and HTTP/2 fingerprints. grequests is archived.

The standard client is often enough: create one http.Client per upstream with an explicit Timeout, since the default client has none, and pass a context on every request. Add a wrapper when you repeat the same JSON and error handling many times, and a retry library only for idempotent requests. If you call one specific API, check whether its official SDK already covers this.

restyby go-resty

Simple HTTP and REST client for Go inspired by Ruby rest-client.

resty.dev/v3Go 1.23+ 1 dependencyv2.17.2updated 14d ago

11.8k

reqby imroc

Simple Go HTTP client with Black Magic (Less code and More efficiency).

github.com/imroc/req/v3Go 1.25+ 9 dependenciesv3.61.0updated 1mo ago

4.9k

heimdallby gojektech

An enhanced http client with retry and hystrix capabilities.

github.com/gojek/heimdall/v8Go 1.25+ 2 dependenciesv8.0.0updated 4mo ago

2.8k

go-retryablehttpby hashicorp

Retryable HTTP client in Go.

github.com/hashicorp/go-retryablehttpGo 1.23+ 2 dependenciesupdated 5mo ago

2.4k

grequestsby levigross

A Go "clone" of the great and famous Requests library.

archived

2.2k

tls-clientby bogdanfinn

Net/http.Client like HTTP Client with options to select specific client TLS Fingerprints to use for requests.

github.com/bogdanfinn/tls-clientGo 1.27+ 10 dependenciesv1.16.0updated today

1.9k

surfby enetx

Advanced HTTP client with HTTP/1.1, HTTP/2, HTTP/3 (QUIC), SOCKS5 proxy support and browser-grade TLS fingerprinting.

github.com/enetx/surfGo 1.27+ 10 dependenciesv1.0.207updated 3d ago

1.9k

slingby dghubble

Sling is a Go HTTP client library for creating and sending API requests.

github.com/dghubble/slingGo 1.19+ 1 dependencyv1.4.2updated 1mo ago

1.7k

requestsby carlmjohnson

HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools.

github.com/carlmjohnson/requestsGo 1.25+ 1 dependencyv0.26.2updated 28d ago

1.7k

gentlemanby h2non

Full-featured plugin-driven HTTP client library.

v2.0.5updated 2y ago

1.1k

pesterby sethgrid

Go HTTP client calls with retries, backoff, and concurrency.

github.com/sethgrid/pesterGo 1.14+ No dependencies v1.2.0updated 4y ago

654

azuretls-clientby Noooste

An easy-to-use HTTP client 100% in Go to spoof TLS/JA3 and HTTP2 fingerprint.

github.com/Noooste/azuretls-clientGo 1.24+ 10 dependenciesv1.13.2updated 6mo ago

471

go-cleanhttpby hashicorp

Get easily stdlib HTTP client, which does not share any state with other clients.

github.com/hashicorp/go-cleanhttpGo 1.24+ No dependencies v0.5.2updated 17d ago

448

requestby monaco-io

HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency.

github.com/monaco-io/requestGo 1.16+ 1 dependencyv1.0.16updated 11mo ago

295

hedgeby bhope

Adaptive hedged requests for Go. Cuts p99 latency with zero configuration, based on Google's "The Tail at Scale" paper.

github.com/bhope/hedgeGo 1.26+ No dependencies v1.0.1updated 5mo ago

287

fast-shotby opus-domini

Hit your API targets with rapid-fire precision using Go's fastest and simple HTTP Client.

github.com/opus-domini/fast-shotGo 1.27+ No dependencies v2.0.0updated 1mo ago

126

go-zoox/fetchby go-zoox

A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API.

github.com/go-zoox/fetchGo 1.18+ 6 dependenciesupdated 4mo ago

90

go-otelroundtripperby NdoleStudio

Go http.RoundTripper that emits open telemetry metrics for HTTP requests.

github.com/NdoleStudio/go-otelroundtripperGo 1.25+ 5 dependenciesv0.0.16updated 1d ago

88

go-http-clientby bozd4g

Make http calls simply and easily.

github.com/bozd4g/go-http-clientGo 1.19+ 1 dependencyv1.0.2updated 2y ago

84

httpretryby ybbus

Enriches the default go HTTP client with retry functionality.

github.com/ybbus/httpretryGo 1.19+ 1 dependencyv1.0.2updated 2y ago

56

rqby ddo

A nicer interface for golang stdlib HTTP client.

0.0.1updated 7y ago

52

axios4goby rezmoss

A Go HTTP client library inspired by Axios, providing a simple and intuitive API for making HTTP requests.

github.com/rezmoss/axios4goGo 1.27+ No dependencies v1.0.0updated 1d ago

39

go-ipmuxby optimus-hft

A library for Multiplexing HTTP requests based on multiple Source IPs.

github.com/optimus-hft/go-ipmuxGo 1.21+ 4 dependenciesv0.3.0updated 2y ago

28

go-reqby wenerme

Declarative golang HTTP client.

github.com/wenerme/go-reqGo 1.24+ 1 dependencyv0.10.1updated 7mo ago

24

Grequestby lib4u

Simple and lightweight golang package for http requests. based on powerful net/http

github.com/lib4u/grequestGo 1.23+ No dependencies v1.1.0updated 1y ago

9

impersonate-httpby North-web-dev

Drop-in net/http.Client with a byte-exact browser TLS (JA3/JA4) and HTTP/2 (Akamai) fingerprint.

github.com/North-web-dev/impersonate-httpGo 1.25+ 5 dependenciesv0.6.0updated 8d ago

7
Esc

Type to search every entry. ↑↓ to move, Enter to open.