Projektet Bottles vil blive genkodet i Rust ved hjælp af libcosmic.

Udviklerne af programmet Bottles, der tilbyder et interface til at forenkle installation, konfiguration og lancering af Windows-applikationer i Linux, har offentliggjort information om udviklingen af initiativet Bottles Next, der sigter mod en total omstrukturering af projektets arkitektur og kodebase. Det bemærkes, at den eksisterende monolitiske applikation skrevet i Python med et GTK-interface ikke tillader mange ideer, såsom understøttelse af macOS, begrænser mulighederne og fører til opståen af problemer, som ikke kan løses uden en grundlæggende ændring af arkitekturen.

Den nye arkitektur indebærer opdeling af applikationen i tre separate komponenter: en klient med implementering af det grafiske interface, en server med logik til at lancere applikationer og styre Wine-præfikser, samt en agent, der kører under Wine og interagerer med Windows API. Oprindeligt var det planlagt at bruge web-teknologier (Electron og VueJS) i klientens implementering, men server skrive det i Go-sprog, men de prototype, der blev lavet, og modstanden fra samfundet mod ideen om at skifte til Electron-motoren, fik udviklerne til at opgive dette projekt.

I stedet er det besluttet at bruge server Rust-sproget til at udvikle klienten, mens det grafiske interface vil blive bygget på basis af rammeværket libcosmic. Libcosmic bruges i skrivebordsmiljøet COSMIC og er et lag oven på biblioteket iced, der tilbyder funktioner til at skabe grafiske applikationer og applets. Der anvendes en reaktiv programmeringsmodel og en arkitektur, der er velkendt for udviklere, der er fortrolige med det deklarative interface-sprog Elm. Til rendering kan motorer baseret på Vulkan, Metal, DX12, OpenGL 2.1+ og OpenGL ES 2.0+ anvendes.

Det bemærkes, at det ville være mere behageligt for udviklerne at bruge Go-sproget, men det måtte opgives på grund af manglen på kvalitetsværktøjer til udvikling af brugergrænseflader. Udover det nye forenklede interface planlægges det at bevare den klassiske version af interface som en mulighed. Koden til agenten vil blive skrevet i C# og .NET, hvilket forklares med behovet for at køre WineBridg-tjenesten i det Windows-miljø, der er dannet af Wine. Containeren til test af den første prototype af Bottles Next, skrevet i Rust, forventes at blive offentliggjort om et par uger. I øjeblikket er kun en simpel demo-version tilgængelig.

Projektet Bottles vil blive genkodet i Rust ved hjælp af libcosmic.
Projektet Bottles vil blive genkodet i Rust ved hjælp af libcosmic.


Kilde: opennet.ru
Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster