Changes for version 0.02 - 2026-08-06
- $c->ua: an outbound HTTP agent on the context
- The agent is one per worker, not one per request: it owns a keep-alive pool and its DNS state.
- More than one agent: `ua partner => { ... }` names a second, the same shape `database` uses for a second database, and $c->ua('partner') asks for it.
- Needs Fetch 0.11 for the per-request jar (Fetch->clone).
Modules
a MVC web framework
the per-application registry and boot compiler
cross-origin resource sharing
single-use CSRF tokens
the subcommands behind the punk tool
YAML configuration with secrets kept out of the file
the per-request object
base class for Punk controllers
an async result that runs on the loop, or blocks
scaffold a new Punk application
a level-based logger
the storage-agnostic model tier
the default DBI backend for Punk models
the api mount: spec-first operations
base class for Punk plugins
a lazy wrapper over the PSGI environment
a response builder
the compiled-at-boot route tables (XS)
the handle an under returns
a Server-Sent Events stream
signed cookie sessions
serving files from a directory
the outbound HTTP agent on the context
an uploaded file from a multipart form
the Template::Stencil view engine
the pluggable view engine registry (XS)
a WebSocket connection
pub/sub groups of WebSocket connections
Examples
- example/Chat/README.pod
- example/Chat/app.psgi
- example/Chat/bin/make-cert
- example/Chat/bin/punk-chat
- example/Chat/bin/tls-proxy
- example/Chat/lib/Chat.pm
- example/Chat/lib/Chat/Auth.pm
- example/Chat/lib/Chat/Bus.pm
- example/Chat/lib/Chat/Controller/API/Message.pm
- example/Chat/lib/Chat/Controller/WS/Chat.pm
- example/Chat/lib/Chat/Controller/Web/Chat.pm
- example/Chat/lib/Chat/Model/Message.pm
- example/Chat/lib/Chat/Schema.pm
- example/Chat/openapi.json
- example/Chat/root/static/chat.css
- example/Chat/root/static/chat.js
- example/Chat/root/templates/index.tmpl
- example/Chat/root/templates/layout.tmpl
- example/Chat/root/templates/room.tmpl
- example/Chat/tls/server.crt
- example/Chat/tls/server.key