Usage Guide¶
Extensions for Saturnin console¶
Command “create standalone”¶
Saturnin containers in which services and applications are run use the component registry
to load the respective components according to the specified recipe. Because Saturnin works
with dynamic component registration and loading, recipes and containers cannot be separated
from a particular Saturnin environment. The create standalone
command enables just such
a separation.
Based on the specified recipe, this command generates a Python script that serves as a container that directly imports the necessary components. This script still needs to be passed the appropriate recipe as a parameter (as when starting the container), but it is no longer dependent on dynamically importing the required components, and can therefore be compiled by the Nuitka Python compiler.
Although this script can be run directly as a replacement for running the appropriate container, the main purpose of this command is to enable compilation to native code. The resulting executable contains all dependencies and can therefore be distributed independently, without the need to install Python and Saturnin on the target system.
Alternatively, the translated container can be used directly within the Saturnin
installation to speed up / optimize selected recipes, as the recipe can specify an
executor
(container). Even multiple recipes can use the same compiled container. However,
the condition for running such a recipe is that it refers only to the components for which
the standalone container was generated.
The usage of the create standalone command is as follows:
create standalone [OPTIONS] RECIPE_NAME
Creates standalone runner (container) for recipe, suitable for compilation with Nuitka.
╭─ Arguments ───────────────────────────────────────────────────────────────────────────╮
│ * recipe_name TEXT Recipe name │
│ [default: None] │
│ [required] │
╰───────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ─────────────────────────────────────────────────────────────────────────────╮
│ --section TEXT Configuration section name │
│ [default: None] │
│ --output PATH Output file │
│ [default: None] │
╰───────────────────────────────────────────────────────────────────────────────────────╯
Important
This command currently does not support recipes that use Saturnin applications.