Le projet Bottles sera réécrit en Rust en utilisant libcosmic

Les développeurs du programme Bottles, qui propose une interface pour simplifier l'installation, la configuration et l'exécution d'applications Windows sur Linux, ont publié des informations sur le développement de l'initiative Bottles Next, visant à une refonte complète de l'architecture et de la base de code du projet. Il est noté que l'application monolithique actuelle en Python avec une interface GTK ne permet pas de mettre en œuvre de nombreuses idées, telles que le support de macOS, limite les possibilités et entraîne des problèmes qui ne peuvent être résolus sans un changement radical de l'architecture.

La nouvelle architecture implique la séparation de l'application en trois composants distincts : un client avec une interface graphique, un serveur avec la logique de lancement des applications et la gestion des préfixes Wine, et un agent fonctionnant sous Wine et interagissant avec l'API Windows. Au départ, il était prévu d'utiliser des technologies web (Electron et VueJS) pour la réalisation du client, mais serveur écrit dans le langage Go, mais les prototypes créés et le rejet par la communauté de l'idée de passer au moteur Electron ont poussé les développeurs à abandonner cette idée.

Il a finalement été décidé d'utiliser le langage Rust pour le développement du client et de serveurs de construire l'interface graphique sur la base du framework libcosmic. Libcosmic est utilisé dans l'environnement de bureau COSMIC et représente un sur-ensemble de la bibliothèque iced, offrant des fonctionnalités pour créer des applications graphiques et des applets. Un modèle de programmation réactive et une architecture familière pour les développeurs connaissant le langage de construction d'interfaces déclaratives Elm sont appliqués pour le développement. Les moteurs basés sur Vulkan, Metal, DX12, OpenGL 2.1+ et OpenGL ES 2.0+ peuvent être utilisés pour le rendu.

Il est signalé que les développeurs se sentiraient plus à l'aise avec le langage Go, mais ils ont dû y renoncer en raison du manque de kits d'outils de qualité pour le développement d'interfaces utilisateur. En plus de la nouvelle interface simplifiée, il est prévu de garder en option l'interface classique familière. Le code de l'agent sera écrit en C# et .NET, ce qui est nécessaire pour exécuter le service WineBridg dans un environnement Windows formé par Wine. Le conteneur pour tester le prototype initial de Bottles Next, écrit en Rust, devrait être publié dans quelques semaines. Actuellement, seule une version démonstration très basique est disponible.

Le projet Bottles sera réécrit en Rust en utilisant libcosmic
Le projet Bottles sera réécrit en Rust en utilisant libcosmic


Source : opennet.ru
Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster