Engines #59
Labels
C-docs
Category: documentation
C-enhancement
Category: enhancement
D-hard
Difficulty: hard
P-low
Priority: low
S-in-design
Status: in design
Milestone
Is your feature request related to a problem? Please describe.
In some cases, no amount of plugin magic will be able to solve a problem effectively, and significant code changes need to be made. An example would be ditching the Actix Web integration entirely for something powered by a different system, while still supporting other plugins. In this case, the
.perseus/
directory should be replaced entirely with a custom directory, which should work (somewhat) with plugins.Describe the solution you'd like
Perseus should have a concept of custom engines, which finally gives a name to the stuff in
.perseus/
. An engine is responsible for tying together all the stuff from the various Perseus crates into a functional app, and it has access to the user's code (hence enablingdefine_app!
). Engines should be changeable, and they should be able to instruct the CLI to operate in different ways. Each engine should declare a JSON file that tells the CLI what each of its commands should do.Describe alternatives you've considered
Control plugins, but they're not amenable to major infrastructural changes, which would be better handled by whole-directory replacements.
Additional context
This will be a very large change, and will be the main focus of v0.4.0. Until then, it'll be kept open as a tracking issue.
The text was updated successfully, but these errors were encountered: