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 serverilt 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
