CLI & Testing
cargo artisan generators, the module and action patterns, and the testing harness.
cargo artisan
cargo rustasea is the cargo subcommand; cargo artisan is the in-app alias.
Generators
17 scaffolds. {name} is PascalCase (snake_case for make:migration); --force overwrites.
Also available: make:middleware, make:provider, make:command, make:event, make:listener, make:observer, make:seeder, make:agent, make:tool, make:action, make:module.
Modules
Module state is discovered from modules/<name>/ and persisted in the [modules] table of rustasea.toml (or config/modules.toml). Enabling an unknown name is rejected before the manifest is written.
The Module contract plus a deterministic ModuleRegistry mounts each enabled module's routes, providers, and migrations. Opt-in via the modules feature.
Action pattern
One typed unit of work runs through four adapters with an identical validate → authorize → handle pipeline:
Opt-in via the action feature; scaffold one with make:action.
Localization and logging
Testing
Console UX
Commands declare typed args and flags through clap, and the console layer supports ask, secret, confirm, choice, and multiSelect prompts, plus table, progressBar, and spinner output, graceful shutdown via Shutdownable, and programmatic Artisan::call().
Last updated Sep 22, 2026