Un backend Rust orchestre des moteurs d'émulation existants, une interface Vue 3 les pilote. Paramètres en JSON local, bibliothèque en SQLite.
Scan
Chaque dossier configuré est parcouru récursivement ; les fichiers sont classés par extension et insérés dans une base SQLite locale, dédoublonnés par chemin.
Metadata
Titre et jaquette résolus via une chaîne de secours IGDB → TheGamesDB → Libretro : le premier fournisseur qui répond gagne, une erreur réseau ou une clé absente passe silencieusement au suivant.
Lancement
Le moteur associé au système est invoqué directement avec le fichier choisi, sans ré-analyse ni étape intermédiaire.
Android à part
Le SDK est détecté via un chemin configuré ou les variables ANDROID_HOME / ANDROID_SDK_ROOT ; les AVD sont ensuite listés, créés et pilotés en sous-processus (avdmanager, sdkmanager, emulator, adb).
Logique de bibliothèque, de résolution metadata et de parsing Android couverte par des tests unitaires Rust (cargo test), sans dépendance réseau.