Proiectul Bottles va fi rescris în limbajul Rust folosind libcosmic

Dezvoltatorii programului Bottles, care oferă o interfață pentru simplificarea instalării, configurării și rulării aplicațiilor Windows pe Linux, au publicat informații despre dezvoltarea inițiativei Bottles Next, care vizează o reimaginare completă a arhitecturii și a bazei de cod a proiectului. Se observă că aplicația monolitică existentă în Python cu interfață GTK nu permite implementarea multor idei, cum ar fi suportul pentru macOS, restrânge opțiunile și duce la apariția unor probleme ce nu pot fi rezolvate fără modificări radicale ale arhitecturii.

Noua arhitectură presupune împărțirea aplicației în trei componente separate: un client cu implementarea interfeței grafice, un server cu logica de rulare a aplicațiilor și gestionarea prefixelor Wine și un agent care funcționează sub Wine și interacționează cu API-ul Windows. Inițial, s-a planificat să se folosească tehnologii web (Electron și VueJS) pentru implementarea clientului, dar serverul s-a decis să fie scris în limbajul Go, însă prototipurile create și respingerea ideii de trecere la motorul Electron de către comunitate au determinat dezvoltatorii să renunțe la această idee.

În final, s-a decis utilizarea limbajului Rust pentru dezvoltarea clientului și server crearea interfeței grafice pe baza framework-ului libcosmic. Libcosmic este utilizat în mediul desktop COSMIC și reprezintă un strat superior peste biblioteca iced, oferind funcții pentru crearea de aplicații grafice și applet-uri. Pentru dezvoltare, se aplică un model de programare reactivă și o arhitectură familiară pentru dezvoltatorii obișnuiți cu limbajul de programare declarativ Elm. Pentru redare pot fi utilizate motoare bazate pe Vulkan, Metal, DX12, OpenGL 2.1+ și OpenGL ES 2.0+.

Se observă că dezvoltatorilor le-ar fi fost mai confortabil să folosească limbajul Go, dar au fost nevoiți să renunțe din cauza lipsei de toolkit-uri de calitate pentru dezvoltarea interfețelor utilizatorului. Pe lângă noua interfață simplificată, se intenționează păstrarea opțională a versiunii clasice a interfeței. Codul agentului va fi scris în C# și .NET, explicația fiind necesitatea de a rula serviciul WineBridg în mediu Windows, creat de Wine. Containerele pentru testarea prototipului de bază Bottles Next, scris în Rust, urmează să fie publicate în câteva săptămâni. În prezent, este disponibilă doar o versiune demo foarte simplă.

Proiectul Bottles va fi rescris în limbajul Rust folosind libcosmic
Proiectul Bottles va fi rescris în limbajul Rust folosind libcosmic


Sursa: opennet.ro
Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster