Download Latest Version v3.60.0 Release source code.zip (557.2 kB)
Email in envelope

Get an email when there's a new version of req

Home / v3.60.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-07-30 2.1 kB
v3.60.0 Release source code.tar.gz 2026-07-30 478.0 kB
v3.60.0 Release source code.zip 2026-07-30 557.2 kB
Totals: 3 Items   1.0 MB 0

Breaking Changes

  • SetTLSFingerprintSpec API change — The signature changed from SetTLSFingerprintSpec(spec *utls.ClientHelloSpec) to SetTLSFingerprintSpec(fn func() utls.ClientHelloSpec). This fixes a bug where reusing the same spec across multiple TLS handshakes caused the second handshake to fail (#504). The factory function ensures a fresh spec is generated per connection. PR [#507] by @1992w.

New Features

  • SetMaxResponseSize — Limit response body size at the client or request level. When Content-Length is known and exceeds the limit, the body is closed without reading. For chunked responses, a streaming limit reader stops at the configured size and returns ErrResponseBodyTooLarge. Closes [#406]. PR [#512] by @ManuelReschke.

  • SOCKS4 and SOCKS4a proxy supportsocks4:// and socks4a:// proxy URLs are now supported. SOCKS4 resolves domain names locally to IPv4; SOCKS4a sends the domain name to the proxy for remote resolution. Closes [#473]. PR [#510] by @ManuelReschke.

  • HTTP QUERY method — Added Request.Query(url) and Request.MustQuery(url) for the HTTP QUERY method defined in RFC 10008 (Proposed Standard, June 2026). PR [#508] by @thatwasyahya.

  • Retry on before-request errors — Retry logic now covers errors from before-request middleware, not just transport errors. PR [#499] by @bao-io.

Bug Fixes

  • Stream multipart uploads without buffering files — Multipart uploads now stream directly to the HTTP transport via io.Pipe instead of building the complete body in a bytes.Buffer. Memory usage is bounded for large file uploads. Fixes [#433]. PR [#505] by @ManuelReschke.

Dependencies

  • quic-go v0.60.0 → v0.61.0
  • klauspost/compress v1.18.2 → v1.19.1
  • icholy/digest v1.1.0 → v1.2.0
  • google/go-querystring v1.1.0 → v1.2.0
  • andybalholm/brotli v1.2.0 → v1.2.2
  • golang.org/x/net v0.55.0 → v0.57.0
  • golang.org/x/text v0.37.0 → v0.40.0
  • golang.org/x/crypto v0.51.0 → v0.54.0 (indirect)
  • golang.org/x/sys v0.45.0 → v0.47.0 (indirect)
Source: README.md, updated 2026-07-30