Il progetto Bottles sarà riscritto in 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 ristrutturazione dell'architettura e del codice del progetto. Si riferisce 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 possono essere risolti senza una radicale modifica dell'architettura.

La nuova architettura implica la suddivisione dell'applicazione in tre componenti distinti: un client con implementazione dell'interfaccia grafica, un server con logica di avvio delle applicazioni e gestione dei prefissi Wine, e un agente che opera sotto Wine e interagisce con le API di Windows. Inizialmente era previsto utilizzare tecnologie web (Electron e VueJS) per l'implementazione del client, ma un server si pensava di scriverlo in Go, ma i prototipi creati e il rifiuto da parte della comunità dell'idea di passare al motore Electron hanno spinto gli sviluppatori a rinunciare a questa proposta.

Alla fine si è deciso di utilizzare per lo sviluppo del client e server il linguaggio Rust e l'interfaccia grafica sono costruite utilizzando il framework libcosmic. Libcosmic è utilizzato nell'ambiente desktop COSMIC ed è un soprainsieme della libreria iced, che fornisce funzionalità per creare applicazioni grafiche e applet. Per lo sviluppo viene utilizzato un modello di programmazione reattiva e un'architettura familiare per gli sviluppatori già esperti nel linguaggio di costruzione dichiarativa degli interfacce Elm. Per il rendering possono essere utilizzati motori basati su Vulkan, Metal, DX12, OpenGL 2.1+ e OpenGL ES 2.0+.

Si segnala che sarebbe stato più comodo per gli sviluppatori utilizzare il linguaggio Go, ma è stato abbandonato a causa della mancanza di toolkit di qualità per lo sviluppo di interfacce utente. Oltre al nuovo interfaccia semplificata, si prevede di mantenere l'opzione dell'interfaccia classica tradizionale. Il codice dell'agente sarà scritto in C# e .NET, a causa della necessità di eseguire il servizio WineBridg in un ambiente Windows creato con Wine. Il contenitore per il testing del prototipo iniziale di Bottles Next, scritto in Rust, sarà pubblicato tra qualche settimana. Attualmente è disponibile solo una demo molto semplice.

Il progetto Bottles sarà riscritto in Rust utilizzando libcosmic
Il progetto Bottles sarà riscritto in 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