Changes for version 0.25 - 2026-09-09

  • Fetch is now an HTTP/3, HTTP/2 and HTTP/1.1 user agent
  • ADDS: HTTP/3 over QUIC (ngtcp2 + nghttp3). An ordinary get uses it once the origin has advertised Alt-Svc; concurrent requests share one QUIC connection.
  • FIXES: a name was resolved with a blocking getaddrinfo, which stalled the whole loop and not just its own request. It now runs on a thread of its own, keeping every resolution semantic the system has - /etc/hosts, nsswitch, mDNS, search domains. An address literal still resolves inline and starts no thread.
  • Without pthreads, and on native Windows, resolution stays inline as before. Fetch::_dns_async reports which.

Modules

HTTP/3, HTTP/2 and HTTP/1.1 Future-based user agent
store cookies and apply them to requests
a fast, native, Future-compatible async result
ordered, case-insensitive, multi-valued HTTP headers
the event-loop adapter interface Fetch drives
run Fetch under AnyEvent
run Fetch on a Hyperman::Loop
run Fetch on an IO::Async::Loop
Fetch's own vendored C event loop
an HTTP response from Fetch
a live WebSocket connection from Fetch