Changes for version 0.002004 - 2026-08-25

  • Specification clarifications - resolved ambiguities
    • Connection-level headers: over HTTP/1.1, when an application response carries an Upgrade header (e.g. on a 426 Upgrade Required), the server must include 'upgrade' among the tokens of the Connection header it supplies, per RFC 9110's requirement on any Upgrade sender. The application never sends Connection: upgrade itself; the server completes the pair. Closes the conflict between the server-owns-connection-headers rule and RFC 9110's 426 requirements.
    • The incomplete-response definition now says explicitly that it covers an application Future that fails with an exception, not only one that resolves, after http.response.start and before the terminal event. No behavior change: the neighboring clauses already treat exceptions identically, and the reference server conforms both ways.

Documentation

building frameworks and toolkits on PAGI
worked, runnable recipes for the PAGI protocol
how PAGI stays loop-agnostic, how not to block, and how a server binds to an event loop
coming to PAGI from PSGI
The base PAGI specification: application interface and core concepts
The PAGI server extension mechanism
The PAGI Lifespan protocol for startup and shutdown events
PAGI server and application-runner integration guidance
The PAGI TLS extension for reporting connection security in scope
PAGI message formats for HTTP, WebSocket, and SSE
Learn the PAGI protocol for async Perl web applications

Modules

Perl Asynchronous Gateway Interface

Examples