Changes for version 0.11

  • $ua->clone(%overrides): another agent over this one's connection pool and loop, with the named options replaced. The case it exists for is a per-request cookie jar - a jar belongs to the agent, so a jar on a long-lived agent is shared by every request that agent serves, which is a cross-request leak the moment the cookies identify an end user rather than the application. Building a fresh agent per request avoids that but throws away the keep-alive pool and re-resolves the loop adapter, which is most of what new() costs; a clone gives the isolation without the bill.
  • cookie_jar, headers, agent, timeout, tls_verify, max_redirects, keep_alive and simple_response are overridable, and cookie_jar => undef drops an inherited jar. Headers are copied rather than shared, so a clone cannot write into the parent's defaults.

Modules

HTTP/2 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