Revision history for Fetch

0.06    2026-08-03
        - Build against older OpenSSL. The TLS code uses the OpenSSL 1.1.0 API
          (TLS_client_method, SSL_CTX_set_min_proto_version, SSL_set1_host);
          on libraries that lack it (OpenSSL 1.0.x / 0.9.8 on legacy BSDs,
          LibreSSL before 2.7) the loadable object failed to load with an
          undefined symbol. TLS now compiles to stubs there, as when OpenSSL
          is absent, so the module loads and cleartext HTTP works (https then
          fails cleanly).

0.05    2026-08-02
        - Add an on_headers request option: a coderef fired once, before any
          on_body chunk, with ($status, [k,v,...]). Lets a streaming consumer
          act on the status/headers up front (e.g. open a downstream writer).
          Not fired for a WebSocket upgrade.
        - Add a C ABI so other XS modules can drive Fetch from C without a
          per-request Perl round trip. 

0.04    2026-08-02
        - Fixes for Windows build:
          - Rename the readiness-backend vtable member "wait" to "wait_ev"
          - Add a portable ft_memmem (a GNU/BSD extension MinGW lacks)
          - Define _CRT_RAND_S at the very top of Fetch.xs

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

0.02    2026-08-01
        - Fix a missing NUL terminator in the URL-scheme lowercaser
          (ft_lc_dup)

0.01    2026-08-01
        First version
