Il progetto Bottles sarà riscritto in linguaggio Rust utilizzando libcosmic.

Gli sviluppatori del programma Bottles, che offre un'interfaccia per semplificare l'installazione, la configurazione e l'esecuzione di applicazioni Windows su Linux, hanno pubblicato informazioni sullo sviluppo dell'iniziativa Bottles Next, mirata a una completa riprogettazione dell'architettura e del codice sorgente del progetto. Si osserva che l'attuale applicazione monolitica in Python con interfaccia GTK non consente di realizzare molte idee, come il supporto per macOS, limita le possibilità e porta a problemi che non si possono risolvere senza una modifica radicale dell'architettura.

La nuova architettura prevede la suddivisione dell'applicazione in tre componenti distinte: un client con implementazione dell'interfaccia grafica, un server con la logica di avvio delle applicazioni e gestione dei prefissi Wine e un agente, che opera sotto Wine e interagisce con l'API di Windows. Inizialmente, si pianificava di utilizzare tecnologie web (Electron e VueJS) per l'implementazione del client, server ma i prototipi sviluppati e il rifiuto della comunità dell'idea di passare al motore Electron hanno spinto gli sviluppatori ad abbandonare questa idea.

Alla fine si è deciso di utilizzare il linguaggio Rust per lo sviluppo del client e server costruire l'interfaccia grafica basata sul framework libcosmic. Libcosmic è utilizzato nell'ambiente desktop COSMIC e rappresenta un'estensione della libreria iced, fornendo funzioni per la creazione di applicazioni grafiche e applet. Per lo sviluppo si applica un modello di programmazione reattiva e un'architettura familiare agli sviluppatori che conoscono il linguaggio di costruzione dell'interfaccia dichiarativa Elm. Per il rendering possono essere utilizzati motori basati su Vulkan, Metal, DX12, OpenGL 2.1+ e OpenGL ES 2.0+.

Si osserva che agli sviluppatori sarebbe stato più comodo utilizzare il linguaggio Go, ma è stato necessario abbandonarlo a causa della mancanza di toolkit di qualità per lo sviluppo delle interfacce utente. Oltre alla nuova interfaccia semplificata, si prevede di mantenere come opzione la classica versione dell'interfaccia. Il codice dell'agente sarà scritto in C# e .NET, il che è spiegato dalla necessità di eseguire il servizio WineBridg in un ambiente Windows formato da Wine. Il contenitore per il test del prototipo iniziale di Bottles Next, scritto in Rust, è previsto per essere pubblicato tra alcune settimane. Attualmente è disponibile solo una versione demo molto semplice.

Il progetto Bottles sarà riscritto in linguaggio Rust utilizzando libcosmic.
Il progetto Bottles sarà riscritto in linguaggio Rust utilizzando libcosmic.


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster