The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

KelpX::Symbiosis::Engine::Kelp - Use Kelp routes as an engine

DESCRIPTION

This is a reimplementation of KelpX::Symbiosis::Engine using Kelp itself as a runner. All other apps will have to go through Kelp first, which will be the center of the application.

CAVEATS

All system routing goes through the Kelp router

You can mix apps and Kelp actions, set bridges and build urls to all application components.

Slurpy parameter will be added to the non-regex path

'/static' will be turned into '/static/>subpath' in order to be able to match any subpath and pass it into the app. Same with [GET => '/static']. This way it will allow the same mount points as other engines without extra work. Regex patterns will not be altered in any way.

mount cannot be configured for the main Kelp app

Kelp will always be mounted at the very root. The module will throw an exception if you try to configure a different mount.

Does not allow to assign specific middleware for the Kelp app

Middleware from the top-level middleware will be wrapping the app the same as Symbiosis middleware, and all other apps will have to go through it. It's impossible to have middleware just for the Kelp app.

Middleware redundancy

Wrapping some apps in the same middleware as your main app may be redundant at times. For example, wrapping a static app in session middleware is probably only going to reduce its performance. If it bothers you, you may want to switch to URLMap engine and only mount specific apps under kelp using psgi => 1.