Changes for version 0.002003 - 2026-06-28
- Bug Fixes
- The PAGI-Tools-dependent integration test guards added in 0.002002 did not actually skip on a pre-split PAGI install, so a smoker with the old distribution still ran t/integration/response-integration.t against the old `new($scope, $send)` constructor and died "send is required". The 0.002002 guards keyed off each body module's own $VERSION with an `!defined($v) || $v >= 0.002000` test; the undef branch (meant to allow an unversioned in-tree checkout) also admitted the pre-split modules, which are likewise unversioned. The guards now gate on PAGI::Tools, a module that exists only in the split-era distribution, so a pre-split install has no PAGI::Tools and the test skips. PAGI::Tools hardcodes its $VERSION (the body modules get theirs injected only at build), so the VERSION(0.002000) check is reliable for both installed releases and an in-tree checkout.
Documentation
PAGI application server
HTTP/1.1, HTTP/2, WebSocket, and Security Compliance Documentation
Modules
PAGI Reference Server Implementation
Non-blocking file I/O for PAGI::Server internals
Per-connection state machine
Connection state tracking for HTTP requests
Dev-mode event field validation
HTTP/1.1 protocol handler
HTTP/2 protocol handler using nghttp2
PAGI application loader and server runner
Outbound flow-control introspection for a connection
Provides
in lib/PAGI/Server/Protocol/HTTP2.pm
Examples
- examples/01-hello-http/README.md
- examples/01-hello-http/app.pl
- examples/02-streaming-response/README.md
- examples/02-streaming-response/app.pl
- examples/03-request-body/README.md
- examples/03-request-body/app.pl
- examples/04-websocket-echo/README.md
- examples/04-websocket-echo/app.pl
- examples/05-sse-broadcaster/README.md
- examples/05-sse-broadcaster/app.pl
- examples/06-lifespan-state/README.md
- examples/06-lifespan-state/app.pl
- examples/07-extension-fullflush/README.md
- examples/07-extension-fullflush/app.pl
- examples/08-tls-introspection/README.md
- examples/08-tls-introspection/app.pl
- examples/11-job-runner/README.md
- examples/11-job-runner/app.pl
- examples/11-job-runner/lib/JobRunner/HTTP.pm
- examples/11-job-runner/lib/JobRunner/Jobs.pm
- examples/11-job-runner/lib/JobRunner/Queue.pm
- examples/11-job-runner/lib/JobRunner/SSE.pm
- examples/11-job-runner/lib/JobRunner/WebSocket.pm
- examples/11-job-runner/lib/JobRunner/Worker.pm
- examples/11-job-runner/public/css/style.css
- examples/11-job-runner/public/index.html
- examples/11-job-runner/public/js/app.js
- examples/12-utf8/README.md
- examples/12-utf8/app.pl
- examples/README.md
- examples/backpressure-test/README.md
- examples/backpressure-test/app.pl
- examples/worker-pool-prototype.pl