Bottles Ensuite, la réécriture de Bottles to Rust utilisera libcosmic

Bouteilles Logo suivant

Les développeurs de Bottles ont récemment révélé , via un article de blog , des détails sur le travail qu'ils vont effectuer sur Bottles Next, une initiative visant à repenser entièrement l'architecture et le code source du projet.

Le communiqué indique que la version actuelle de Bottles, écrite en Python avec une interface basée sur GTK, présente des limitations importantes qui entravent l'intégration de nouvelles fonctionnalités, telles que la prise en charge de macOS, et pose des problèmes qui ne peuvent être résolus que par une refonte structurelle profonde.

Il y a plus d'un an, nous avons annoncé Bottles Next, une réécriture complète du projet Bottles. Au départ, l’idée était d’exploiter les technologies Web pour obtenir l’expérience que nous envisageions pour nos utilisateurs. Cependant, comme c'est souvent le cas, des recherches approfondies, des débats, des expériences et une réévaluation continue ont eu lieu.

Pourquoi se donner tant de mal ? Eh bien, pour être sûr que nous prenons les bonnes décisions.

Après l'annonce, nous avons commencé à expérimenter de nombreuses technologies, mais nous avons surtout écouté les retours de la communauté, notamment ceux liés à Electron. Cela nous a poussé à explorer d’autres voies, ce qui nous a amené à créer des prototypes de framework adaptés aux besoins spécifiques de Bottles Next.

Et nous voilà aujourd'hui.

C’est pourquoi la nouvelle approche divise l’application en trois composantes principales :

  • Un client : responsable de l'interface graphique
  • Un serveur : en charge de la logique d'exécution des applications et de gestion des préfixes Wine
  • Un agent : qui opère au sein de Wine pour interagir directement avec l'API Windows.

Bien qu'il ait été initialement envisagé d'implémenter le client avec des technologies web telles qu'Electron et VueJS, et de développer le serveur en Go, la réaction de la communauté et les résultats obtenus avec les prototypes ont conduit les développeurs à abandonner cette idée.

Par conséquent, il a finalement été décidé d'utiliser Rust pour le client et le serveur, tandis que l'interface graphique serait basée sur le framework libcosmic. Ce framework, utilisé dans l'environnement de bureau COSMIC, est une extension de la bibliothèque iced , qui facilite la création d'interfaces graphiques modernes et évolutives. Libcosmic adopte un modèle de programmation réactive et suit une architecture similaire à celle du langage déclaratif Elm, ce qui en facilite la prise en main pour les développeurs familiers avec cette approche.

bouteilles-suivant-rouille

Bien que les développeurs aient préféré utiliser le langage Go, ils ont finalement opté pour Rust en raison du nombre limité d'outils de qualité disponibles pour le développement d'interfaces graphiques en Go. Malgré cette transition, la nouvelle architecture prévoit également de maintenir la version classique de l'interface en option, offrant ainsi aux utilisateurs une expérience familière tout en s'adaptant aux nouvelles normes et technologies.

Côté rendu, Bottles Next prendra en charge des moteurs tels que Vulkan, Metal, DX12, OpenGL 2.1+ et OpenGL ES 2.0+, garantissant ainsi une large compatibilité avec différents systèmes et matériels. Cette refonte promet des performances améliorées, une compatibilité multiplateforme étendue et une base plus solide pour les développements futurs de Bottles.

Cette mise à jour affecte à la fois Bottles Legacy (la version actuelle de Bottles) et Bottles Next. Dans les semaines à venir, la première version de cpak sera finalisée. Il s'agit d'un format de distribution de logiciels portable et dédupliqué entièrement basé sur des images OCI.

Il est également précisé que l'agent Bottles Next, qui fonctionne dans l'environnement Windows généré par Wine, sera écrit en C# avec .NET. Ce choix répond aux besoins spécifiques du service WineBridge, qui requiert une intégration efficace avec l'API Windows dans un environnement émulé.

Concernant le développement, un conteneur de test pour le prototype initial de Bottles Next, entièrement écrit en Rust, devrait être disponible d'ici quelques semaines . Pour l'instant, seule une version de démonstration basique est accessible, permettant aux utilisateurs d'avoir un premier aperçu des capacités et de l'orientation du projet. Cette transition vers Bottles Next promet des améliorations significatives en termes de fonctionnalités, de compatibilité et de performances.

Enfin, si vous souhaitez en savoir plus à ce sujet , vous trouverez les détails en suivant ce lien.


Ajouter comme source préférée dans Google