Changes for version 0.03 - 2026-08-02

  • Fetch->new(simple_response => 1): resolve to a plain unblessed hashref { status, headers, content } instead of a blessed Fetch::Response, so callers read fields directly and skip method dispatch. A lean option for consuming very large numbers of responses.
  • Native Windows (MSWin32) port. A new socket/IO shim (ft_win.h) maps the ~dozen socket calls onto Winsock: sockets are wrapped in a CRT fd via _open_osfhandle so the rest of the core keeps its dense "int fd" model (per-fd callback arrays, the backend, TLS all unchanged), with the real SOCKET recovered only at the Winsock boundary and WSA errors mapped to errno. A select()-based readiness backend (backend_select.c) replaces poll (which Windows lacks)
  • Link -lrt when clock_gettime needs it. backend_poll.c calls clock_gettime(CLOCK_MONOTONIC), which lives in librt on glibc before 2.17

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