Bottles Ezután a Bottles Rust-re való átírása a libcosmic-ot fogja használni

Bottles Next logó

A Bottles fejlesztői nemrégiben egy blogbejegyzésben árulták el a Bottles Next projekten végzett munkájuk részleteit, amelynek célja a projekt architektúrájának és kódbázisának teljes újratervezése.

A közlemény megemlíti, hogy a Bottles jelenlegi, Pythonban írt, GTK-alapú felülettel rendelkező verziója jelentős korlátozásokkal szembesül , amelyek akadályozzák az új funkciók, például a macOS-támogatás beépítését, és olyan problémákat vet fel, amelyeket csak mélyreható szerkezeti változtatással lehet megoldani.

Több mint egy éve bejelentettük a Bottles Nextet, amely a Bottles projekt teljes újraírása. Kezdetben az volt az ötlet, hogy kihasználjuk a webes technológiákat, hogy elérjük az általunk elképzelt felhasználói élményt. Azonban, ahogy az lenni szokott, kiterjedt kutatások, viták, kísérletek és folyamatos újraértékelés folyt.

Miért kell keresztülmenni ezen a sok gondon? Nos, hogy biztosan helyes döntéseket hozzunk.

A bejelentést követően számos technológiával kezdtünk kísérletezni, de mindenekelőtt meghallgattuk a közösség visszajelzéseit, különösen az Electronnal kapcsolatosakat. Ez arra késztetett bennünket, hogy más utakat keressünk, ami a Bottles Next speciális igényeihez igazított keretprototípusok megalkotásához vezetett.

És ma itt tartunk.

Ezért az új megközelítés három fő részre osztja az alkalmazást:

  • Ügyfél: felelős a grafikus felületért
  • Szerver: felelős az alkalmazások futtatásának logikájáért és a Wine előtagok kezeléséért
  • Ügynök: amely a Wine-on belül működik, hogy közvetlenül kommunikáljon a Windows API-val.

Bár kezdetben fontolóra vették a kliens webes technológiákkal, például Electronnal és VueJS-szel történő megvalósítását, a szerver fejlesztését pedig Go-ban, a közösség reakciója és a prototípusokkal elért eredmények arra késztették a fejlesztőket, hogy elvessenek ettől az ötlettől.

Ezért végül úgy döntöttek, hogy a Rust-ot használják mind a kliens, mind a szerver számára, míg a grafikus felület a libcosmic keretrendszeren alapul. Ez a COSMIC asztali környezetben használt keretrendszer az iced könyvtár kiterjesztése , amely megkönnyíti a modern és skálázható grafikus felületek létrehozását. A Libcosmic egy reaktív programozási modellt alkalmaz , és a deklaratív Elm nyelvhez hasonló architektúrát követ, így a megközelítéssel ismerkedő fejlesztők könnyebben megérthetik.

palackok-next-rozsda

Bár a fejlesztők szívesebben dolgoztak volna a Go nyelven, végül a Rust mellett döntöttek, mivel korlátozottan álltak rendelkezésre kiváló minőségű eszközök a Go-ban történő grafikus felületek fejlesztéséhez. Ezen átmenet ellenére az új architektúra azt is tervezi, hogy a felület klasszikus verzióját opcióként megtartja, ismerős élményt kínálva a felhasználóknak, miközben alkalmazkodnak az új szabványokhoz és technológiákhoz.

Renderelés tekintetében a Bottles Next olyan motorokat fog támogatni, mint a Vulkan, Metal, DX12, OpenGL 2.1+ és OpenGL ES 2.0+, biztosítva a széleskörű alkalmazkodóképességet a különböző rendszerekhez és hardverekhez. Ez az újratervezés jobb teljesítményt, kibővített platformfüggetlen kompatibilitást és a jövőbeli Bottles fejlesztésekhez szilárdabb alapot ígér.

Ez a frissítés a Bottles Legacy (a Bottles jelenlegi verziója) és a Bottles Next alkalmazást egyaránt érinti. A következő hetekben elkészül a cpak első verziója. Ez egy hordozható, deduplikált szoftverterjesztési formátum, amely teljes egészében OCI képeken alapul.

Azt is említik, hogy a Bottles Next ügynököt, amely a Wine által generált Windows környezetben működik, C#-ban, .NET használatával írják. Ez a választás a WineBridge szolgáltatás sajátos igényeit elégíti ki, amely hatékony integrációt igényel a Windows API-val egy emulált környezetben.

A fejlesztést illetően várhatóan néhány héten belül megjelenik a Bottles Next kezdeti prototípusának tesztelésére szolgáló konténer, amely teljes egészében Rust nyelven íródott . Egyelőre csak egy alapvető demó verzió érhető el, amely lehetővé teszi a felhasználók számára, hogy előzetes képet kapjanak a projekt képességeiről és irányáról. A Bottles Nextre való áttérés jelentős javulást ígér a funkcionalitás, a kompatibilitás és a teljesítmény terén.

Végül, ha többet szeretnél megtudni erről , a részleteket az alábbi linken találod.


Hozzáadás előnyben részesített forrásként a Google-ben