Bottles Nato bo preoblikovanje Bottles to Rust uporabilo libcosmic

Logotip Bottles Next

Razvijalci projekta Bottles so nedavno v objavi na blogu razkrili podrobnosti o delu, ki ga bodo opravljali pri projektu Bottles Next, pobudi, katere cilj je popolna prenova arhitekture in kodne baze projekta.

V izjavi je omenjeno, da se trenutna različica programa Bottles, napisana v Pythonu z vmesnikom, ki temelji na GTK, sooča s precejšnjimi omejitvami , ki ovirajo vključitev novih funkcij, kot je podpora za macOS, in predstavlja težave, ki jih je mogoče rešiti le s temeljito strukturno spremembo.

Pred več kot enim letom smo napovedali Bottles Next, popolno prenovo projekta Bottles. Sprva je bila ideja izkoristiti spletne tehnologije za dosego izkušnje, ki smo si jo zamislili za naše uporabnike. Vendar, kot se pogosto zgodi, je prišlo do obsežnih raziskav, razprav, poskusov in nenehnega ponovnega ocenjevanja.

Zakaj bi šel skozi vse te težave? No, da se prepričamo, da sprejemamo prave odločitve.

Po objavi smo začeli eksperimentirati s številnimi tehnologijami, predvsem pa smo prisluhnili povratnim informacijam skupnosti, zlasti tistim, povezanim z Electronom. To nas je spodbudilo k raziskovanju drugih poti, kar nas je pripeljalo do ustvarjanja okvirnih prototipov, prilagojenih posebnim potrebam Bottles Next.

In tukaj smo danes.

Zato novi pristop aplikacijo deli na tri glavne komponente:

  • Naročnik: odgovoren za grafični vmesnik
  • Strežnik: zadolžen za logiko za zagon aplikacij in upravljanje predpon Wine
  • Agent: ki deluje znotraj Wine za neposredno interakcijo z Windows API.

Čeprav se je sprva razmišljalo o implementaciji odjemalca s spletnimi tehnologijami, kot sta Electron in VueJS, strežnik pa o razvoju v jeziku Go, so odziv skupnosti in rezultati, pridobljeni s prototipi, razvijalce pripeljali do tega, da so to idejo opustili.

Zato je bilo na koncu odločeno, da se za odjemalca in strežnik uporabi Rust, grafični vmesnik pa bo temeljil na ogrodju libcosmic. To ogrodje, ki se uporablja v namiznem okolju COSMIC, je razširitev knjižnice iced , ki omogoča ustvarjanje sodobnih in skalabilnih grafičnih vmesnikov. Libcosmic uporablja reaktivni programski model in sledi arhitekturi, podobni deklarativnemu jeziku Elm, kar razvijalcem, ki so seznanjeni s tem pristopom, olajša razumevanje.

steklenice-naslednje-rje

Čeprav bi razvijalci raje delali z jezikom Go, so se na koncu odločili za Rust zaradi omejene razpoložljivosti visokokakovostnih orodij za razvoj grafičnih vmesnikov v Go. Kljub temu prehodu nova arhitektura vključuje tudi načrte za ohranitev klasične različice vmesnika kot možnosti, ki uporabnikom ponuja znano izkušnjo, hkrati pa se prilagaja novim standardom in tehnologijam.

Kar zadeva upodabljanje, bo Bottles Next podpiral mehanizme, kot so Vulkan, Metal, DX12, OpenGL 2.1+ in OpenGL ES 2.0+, kar zagotavlja široko prilagodljivost različnim sistemom in strojni opremi. Ta prenova obljublja izboljšano zmogljivost, razširitev združljivosti med platformami in robustnejšo podlago za prihodnji razvoj Bottles.

Ta posodobitev vpliva na Bottles Legacy (trenutna različica Bottles) in Bottles Next. V naslednjih tednih bo dokončana prva različica cpak. To je prenosni format za distribucijo programske opreme z odstranjeno dvojnico, ki v celoti temelji na slikah OCI.

Omenjeno je tudi, da bo agent Bottles Next, ki deluje v okolju Windows, ki ga generira Wine, napisan v jeziku C# z uporabo .NET. Ta izbira obravnava specifične potrebe storitve WineBridge, ki zahteva učinkovito integracijo z Windows API-jem v emuliranem okolju.

Kar zadeva razvoj, naj bi v nekaj tednih izšel vsebnik za testiranje začetnega prototipa Bottles Next, ki je v celoti napisan v Rustu . Zaenkrat je na voljo le osnovna demo različica, ki uporabnikom omogoča, da dobijo predhodno predstavo o zmogljivostih in smeri projekta. Ta prehod na Bottles Next obljublja znatne izboljšave funkcionalnosti, združljivosti in zmogljivosti.

Nenazadnje, če vas zanima več o tem , lahko podrobnosti najdete na naslednji povezavi.


Dodaj kot prednostni vir v Googlu