Het Bottles-project zal worden herschreven in Rust met gebruik van libcosmic

De ontwikkelaars van het programma Bottles, dat een interface biedt om de installatie, configuratie en uitvoering van Windows-applicaties op Linux te vereenvoudigen, hebben informatie gepubliceerd over de ontwikkeling van het initiatief Bottles Next, gericht op een volledige herziening van de architectuur en de codebasis van het project. Het huidige monolithische Python-programma met een GTK-interface staat niet toe veel ideeƫn te implementeren, zoals ondersteuning voor macOS, en beperkt de mogelijkheden, wat leidt tot problemen die niet kunnen worden opgelost zonder ingrijpende veranderingen in de architectuur.

De nieuwe architectuur houdt in dat de applicatie wordt verdeeld in drie afzonderlijke componenten: een client met een grafische interface, een server met de logica voor het starten van applicaties en het beheren van Wine-prefixen, en een agent die onder Wine draait en communiceert met de Windows API. Oorspronkelijk was het plan om webtechnologieƫn (Electron en VueJS) te gebruiken voor de implementatie van de client, server maar de gemaakte prototypes en de afwijzing van de gemeenschap van het idee om over te schakelen naar de Electron-engine, hebben de ontwikkelaars ertoe aangezet om deze gedachte te laten varen.

Uiteindelijk is besloten om voor de ontwikkeling van de client de de server programmeertaal Rust te gebruiken, en de grafische interface te bouwen op basis van het libcosmic-framework. Libcosmic wordt gebruikt in de COSMIC desktopomgeving en is een laag bovenop de iced-bibliotheek die functies biedt voor het maken van grafische applicaties en applets. Voor de ontwikkeling wordt gebruikgemaakt van een reactieve programmeermodel en een architectuur die vertrouwd is voor ontwikkelaars die bekend zijn met de declaratieve interfacebouw taal Elm. Voor de weergave kunnen engines op basis van Vulkan, Metal, DX12, OpenGL 2.1+ en OpenGL ES 2.0+ worden gebruikt.

Het wordt opgemerkt dat ontwikkelaars de programmeertaal Go liever zouden gebruiken, maar dat ze moesten afzien van dit idee vanwege het gebrek aan kwaliteitsvolle toolkit voor het ontwikkelen van gebruikersinterfaces. Naast de nieuwe vereenvoudigde interface is het de bedoeling om de vertrouwde klassieke interface als optie te behouden. De agentcode zal worden geschreven in C# en .NET, wat wordt verklaard door de noodzaak om de WineBridge-service te laten draaien in een Windows-omgeving die door Wine is gevormd. De container voor het testen van het eerste prototype van Bottles Next, geschreven in Rust, wordt over enkele weken gepubliceerd. Op dit moment is alleen een eenvoudige demo-versie beschikbaar.

Het Bottles-project zal worden herschreven in Rust met gebruik van libcosmic
Het Bottles-project zal worden herschreven in Rust met gebruik van libcosmic


Bron: opennet.ru
Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster