Architecture
One of the main goals of Serpenta is to decouple the View as much as possible from the Control; i.e., provide a safe, clean and efficient UI library with defined exposed ports and allow for the developer to create their own communication with their pod.
However, this would strip away a lot of Serpenta's functionality and purpose. To deal with this, an implementation with Tauri was provided additionally in a Tauri Starter Kit.
Components of a Serpenta System
A Serpenta system includes a frontend built on a Svelte-compatible framework and a backend that powers the app, providing necessary functionality for the UI-required interfaces and additional auxiliary features.
Modularity
The entire Running Engine subsystem is replaceable by default, and you may opt to use another engine instead.
![Serenta components Serenta components](images/serenta-components.png)
Classes and required interfaces
The entire Tauri Starter subsystem component (or only parts of it) may be swapped for another as mentioned before in this section.
![Serpenta detailed Serpenta detailed](images/serpenta-detailed.png)