Changes for version 0.106 - 2026-06-27
- Public interface changes
- Added connection attribute to Context
- Added empty_res, send_res, try_send_res methods to Context
- Added is_ready method to Response
- Breaking changes
- Response is now a value (via PAGI::Tools change)
- awaiting response's calls which used to send data like "text", "html" etc. is now wrong - remove "await" calls
- Thunderhorse dependencies no longer ensure pagi-server will be installed (via PAGI distribution split)
- pagi-server is now a part of a separate PAGI::Server module, which is not a direct dependency for Thunderhorse
- Response is now a value (via PAGI::Tools change)
- Fixes
- Router behavior was improved (via Gears 0.104 change)
- previously, declaring bridges as empty routes was hard, and required an empty route ('' instead of '/')
- Gears::Router added pattern_separator, which is set to '/' by default, and affects how paths are joined
- this makes sure bridges will not cause repeated '/' in routes if they are declared as '/'
- Router behavior was improved (via Gears 0.104 change)
Documentation
manage Thunderhorse projects
Past and future compatibility notices
Reusable coding patterns
Table of contents
Modules
Test2-native testing tools for Thunderhorse applications
A no-compromises, brutally-good web framework
Base application class for Thunderhorse
Controller for no controller scenarios
Configuration handling for Thunderhorse
Request handling context
Base controller class for Thunderhorse
Base class for Thunderhorse modules
Logger module for Thunderhorse
Middleware module for Thunderhorse
Template module for Thunderhorse
Request wrapper for Thunderhorse
Response wrapper for Thunderhorse
Router for Thunderhorse
Router location implementation
Server-Sent Events wrapper for Thunderhorse
WebSocket wrapper for Thunderhorse
Provides
in lib/Gears/Logger/Handler.pm
in lib/Gears/Template/TT.pm
in lib/Gears/X/Thunderhorse.pm
in lib/Thunderhorse/Autoloadable.pm
in lib/Thunderhorse/Context/Facade.pm
in lib/Thunderhorse/Message.pm
in lib/Thunderhorse/Router/SpecializedCache.pm
Examples
- ex/controllers/app.pl
- ex/controllers/lib/ControllerApp.pm
- ex/controllers/lib/ControllerApp/Controller/Clock.pm
- ex/full-app/app.pl
- ex/full-app/conf/config.pl
- ex/full-app/conf/development.pl
- ex/full-app/conf/production.pl
- ex/full-app/lib/FullApp.pm
- ex/full-app/lib/FullApp/Controller/API.pm
- ex/full-app/t/base.t
- ex/full-app/views/welcome.tt
- ex/hello-world/app.pl
- ex/sse/app.pl
- ex/websocket/app.pl