Bottlesi arendajad, kes pakuvad liidest Windowsi rakenduste lihtsustamiseks Linuxis, avaldasid teavet Bottles Next algatuse arengust, mille eesmärk on projekti arhitektuuri ja koodibaasi täielik ümberehitamine. Märgitakse, et olemasolev monoliitne rakendus Pythonis GTK liidese abil ei võimalda rakendada paljusid ideid, nagu macOSi tugi, piirab võimalusi ning tekitab probleeme, mida ei saa lahendada ilma kardinaalsete arhitektuurimuudatusteta.
Uus arhitektuur hõlmab rakenduse jagamist kolmeks eraldi komponendiks: kliendi, kus asub graafiline liides, server, mis haldab rakenduste käivitamise loogikat ja Wine'i eeliste haldamist, ning agent, mis töötab Wine'i all ja suhtleb Windowsi API-ga. Alguses plaaniti rakenduse kliendi teostamise jaoks kasutada veebi tehnoloogiaid (Electron ja VueJS), kuid server olis plaanis kirjutada Go keeles, kuid loodud prototüübid ja kogukonna vastumeelsus Electroni mootorile ülemineku ideele sundisid arendajaid sellest plaanist loobuma.
Lõpuks otsustati kasutada kliendi arenduseks serverid Rust keelt ja graafilise liidese täiendamiseks libcosmic raamistikku. Libcosmicit kasutatakse COSMIC töölaua keskkonnas ja see on jääk üle iced teegile, mis pakub funktsioone graafiliste rakenduste ja appletide loomiseks. Arenduses rakendatakse reaktiivprogrammeerimise mudelit ja arhitektuuri, millega on tuttavad arendajad, kes tunnevad deklareeritud liideste loomiseks mõeldud Elm keelt. Joonistamiseks võivad olla kasutusel Vulkan, Metal, DX12, OpenGL 2.1+ ja OpenGL ES 2.0+ põhised mootorid.
Märgitakse, et arendajatele oleks Go keele kasutamine mugavam, kuid tuli sellest loobuda kvaliteetsete kasutajaliideste arendamise tööriistade puudumise tõttu. Peale uue lihtsustatud liidese plaanitakse võimalusena jätta alles tuttav klassikaline liidese variant. Agendi kood kirjutatakse C# ja .NET keeles, mis tuleneb vajadusest käivitada WineBridg teenus Windowsi keskkonnas, mille moodustab Wine. Testimise jaoks mõeldud Bottles Next esialgse prototüübi konteiner, mis on kirjutatud Rustis, kavatsetakse avaldada paar nädalat. Praegu on saadaval vaid lihtne demo versioon.


Allikas: opennet.ru
