Bottles Zatim, ponovno pisanje Bottles to Rust koristit će libcosmic

Logo Bottles Next

Razvojni tim Bottles nedavno je, putem bloga, otkrio detalje o radu koji će obavljati na Bottles Next, inicijativi usmjerenoj na potpuno redizajniranje arhitekture i kodne baze projekta.

U izjavi se spominje da trenutna verzija Bottles-a, napisana u Pythonu s GTK sučeljem, suočava se sa značajnim ograničenjima koja ometaju uključivanje novih značajki, poput podrške za macOS, te predstavlja probleme koji se mogu riješiti samo dubokom strukturnom promjenom.

Prije više od godinu dana najavili smo Bottles Next, potpunu preradu projekta Bottles. U početku je ideja bila iskoristiti web tehnologije za postizanje iskustva koje smo zamislili za naše korisnike. Međutim, kao što to često biva, bilo je opsežnih istraživanja, rasprava, eksperimenata i kontinuiranog ponovnog vrednovanja.

Zašto prolaziti kroz sve ove nevolje? Pa, kako bismo bili sigurni da donosimo ispravne odluke.

Nakon objave, počeli smo eksperimentirati s mnogim tehnologijama, ali prije svega slušali smo povratne informacije zajednice, posebice one vezane uz Electron. To nas je potaknulo da istražimo druge putove, što nas je dovelo do stvaranja prototipova okvira prilagođenih specifičnim potrebama Bottles Nexta.

I evo nas danas.

Zato novi pristup dijeli aplikaciju na tri glavne komponente:

  • Klijent: odgovoran za grafičko sučelje
  • Poslužitelj: zadužen za logiku pokretanja aplikacija i upravljanja Wine prefiksima
  • Agent: koji djeluje unutar Winea za izravnu interakciju s Windows API-jem.

Iako se u početku razmatralo implementacija klijenta s web tehnologijama poput Electrona i VueJS-a, a razvoj poslužitelja u Gou, reakcija zajednice i rezultati dobiveni s prototipovima naveli su programere da odustanu od te ideje.

Stoga je na kraju odlučeno koristiti Rust i za klijenta i za poslužitelj, dok bi grafičko sučelje bilo temeljeno na libcosmic frameworku. Ovaj framework, koji se koristi u COSMIC desktop okruženju, proširenje je iced biblioteke , koja olakšava stvaranje modernih i skalabilnih grafičkih sučelja. Libcosmic usvaja reaktivni programski model i slijedi arhitekturu sličnu deklarativnom Elm jeziku, što ga programerima koji su upoznati s ovim pristupom olakšava razumijevanje.

boce-sljedeća-hrđa

Iako bi programeri radije radije radili s Go jezikom, na kraju su se odlučili za Rust zbog ograničene dostupnosti visokokvalitetnih alata za razvoj grafičkih sučelja u Gou. Unatoč ovom prijelazu, nova arhitektura također uključuje planove za zadržavanje klasične verzije sučelja kao opcije, nudeći korisnicima poznato iskustvo uz prilagođavanje novim standardima i tehnologijama.

Što se tiče renderiranja, Bottles Next će podržavati engine kao što su Vulkan, Metal, DX12, OpenGL 2.1+ i OpenGL ES 2.0+, osiguravajući široku prilagodljivost različitim sustavima i hardveru. Ovaj redizajn obećava poboljšane performanse, proširenu kompatibilnost među platformama i robusniju osnovu za budući razvoj Bottles-a.

Ovo ažuriranje utječe i na Bottles Legacy (trenutačnu verziju Bottlesa) i na Bottles Next. U nadolazećim tjednima bit će dovršena prva verzija cpak-a. To je prijenosni, deduplicirani format distribucije softvera koji se u potpunosti temelji na OCI slikama.

Također se spominje da će agent Bottles Next, koji radi unutar Windows okruženja generiranog Wineom, biti napisan u C# koristeći .NET. Ovaj izbor adresira specifične potrebe WineBridge usluge, koja zahtijeva učinkovitu integraciju s Windows API-jem u emuliranom okruženju.

Što se tiče razvoja, očekuje se da će kontejner za testiranje početnog prototipa Bottles Nexta, u potpunosti napisanog u Rustu, biti objavljen za nekoliko tjedana . Zasad je dostupna samo osnovna demo verzija koja korisnicima omogućuje da dobiju preliminarnu ideju o mogućnostima i smjeru projekta. Ovaj prijelaz na Bottles Next obećava značajna poboljšanja u funkcionalnosti, kompatibilnosti i performansama.

Konačno, ako ste zainteresirani saznati više o ovome , detalje možete pronaći na sljedećoj poveznici.


Dodaj kao preferirani izvor na Googleu