Pudelid Järgmisena kasutatakse Bottles'i roosteeks muutmisel libcosmic'i

Pudelid Järgmine logo

Bottles'i arendajad avalikustasid hiljuti ajaveebipostituse kaudu üksikasju töö kohta, mida nad Bottles Nexti kallal teevad – see on algatus, mille eesmärk on projekti arhitektuuri ja koodibaasi täielik ümberkujundamine.

Avalduses mainitakse, et Pythonis kirjutatud ja GTK-põhise liidesega Bottles'i praegune versioon seisab silmitsi oluliste piirangutega , mis takistavad uute funktsioonide, näiteks macOS-i toe, lisamist ning tekitavad probleeme, mida saab lahendada ainult põhjaliku struktuurimuutuse abil.

Rohkem kui aasta tagasi teatasime Bottles Nextist, mis on Pudelite projekti täielik ümberkirjutamine. Algselt oli idee kasutada veebitehnoloogiaid, et saavutada kogemus, mida me oma kasutajatele ette nägime. Kuid nagu sageli, toimusid ulatuslikud uuringud, debatid, katsed ja pidev ümberhindamine.

Milleks kogu see häda läbi elada? Noh, veendumaks, et teeme õigeid otsuseid.

Pärast teadaannet hakkasime katsetama paljude tehnoloogiatega, kuid ennekõike kuulasime kogukonna tagasisidet, eriti Electroniga seotud tagasisidet. See ajendas meid uurima teisi teid, mis viis meid Bottles Nexti konkreetsetele vajadustele kohandatud raamistiku prototüüpide loomiseni.

Ja siin me täna oleme.

Seetõttu jagab uus lähenemisviis rakenduse kolmeks põhikomponendiks:

  • Klient: vastutab graafilise liidese eest
  • Server: vastutab rakenduste käitamise ja Wine'i eesliidete haldamise loogika eest
  • Agent: mis töötab Wine'is, et suhelda otse Windowsi API-ga.

Kuigi algselt kaaluti kliendi rakendamist veebitehnoloogiate, näiteks Electroni ja VueJS-i abil ning serveri arendamist Go-s, siis kogukonna reaktsioon ja prototüüpidega saadud tulemused panid arendajad sellest ideest loobuma.

Seetõttu otsustati lõpuks kasutada Rusti nii kliendi kui ka serveri jaoks, samas kui graafiline liides põhineks libcosmic raamistikul. See COSMICi töölauakeskkonnas kasutatav raamistik on iced teegi laiendus , mis hõlbustab kaasaegsete ja skaleeritavate graafiliste liideste loomist. Libcosmic kasutab reaktiivset programmeerimismudelit ja järgib deklaratiivse Elmi keelega sarnast arhitektuuri, muutes selle lähenemisviisiga tuttavatel arendajatel selle mõistmise lihtsamaks.

pudelid-next-rooste

Kuigi arendajad oleksid eelistanud töötada Go keelega, valisid nad lõpuks Rusti, kuna Go-s graafiliste liideste arendamiseks mõeldud kvaliteetsete tööriistade kättesaadavus oli piiratud. Vaatamata sellele üleminekule sisaldab uus arhitektuur ka plaane säilitada liidese klassikaline versioon valikuna, pakkudes kasutajatele tuttavat kogemust, kohandudes samal ajal uute standardite ja tehnoloogiatega.

Renderdamise osas toetab Bottles Next selliseid mootoreid nagu Vulkan, Metal, DX12, OpenGL 2.1+ ja OpenGL ES 2.0+, tagades laiaulatusliku kohandatavuse erinevate süsteemide ja riistvaraga. See ümberkujundamine lubab pakkuda paremat jõudlust, laiendada platvormidevahelist ühilduvust ja luua tugevama aluse Bottles'i edasiseks arenduseks.

See värskendus mõjutab nii Bottles Legacy (pudelite praegune versioon) kui ka Bottles Next. Lähinädalatel valmib cpaki esimene versioon. See on kaasaskantav, dubleeritud tarkvara levitamise formaat, mis põhineb täielikult OCI-piltidel.

Samuti mainitakse, et Bottles Next agent, mis töötab Wine'i loodud Windowsi keskkonnas, kirjutatakse C# keeles .NET-i abil. See valik vastab WineBridge'i teenuse erivajadustele, mis nõuavad tõhusat integratsiooni Windows API-ga emuleeritud keskkonnas.

Arendustöö osas peaks mõne nädala pärast ilmuma konteiner Bottles Nexti esialgse prototüübi testimiseks, mis on täielikult kirjutatud Rustis . Praegu on saadaval ainult põhiline demoversioon, mis võimaldab kasutajatel saada esialgse ettekujutuse projekti võimalustest ja suunast. See üleminek Bottles Nextile lubab olulisi parandusi funktsionaalsuse, ühilduvuse ja jõudluse osas.

Lõpuks, kui olete huvitatud selle kohta rohkem teada saamast , leiate üksikasjad järgmiselt lingilt.


Lisa eelistatud allikana Google'is