Projekt Bottles zostanie przepisany w języku Rust z użyciem libcosmic

Deweloperzy programu Bottles, oferującego interfejs do uproszczenia instalacji, konfiguracji i uruchamiania aplikacji Windows w systemie Linux, opublikowali informacje na temat rozwoju inicjatywy Bottles Next, mającej na celu całkowitą przebudowę architektury i bazy kodu projektu. Zauważono, że istniejąca monolityczna aplikacja napisana w Pythonie z interfejsem opartym na GTK ogranicza możliwości i prowadzi do problemów, których nie można rozwiązać bez radykalnej zmiany architektury.

Nowa architektura zakłada podział aplikacji na trzy odrębne komponenty: klienta z realizacją interfejsu graficznego, serwera z logiką uruchamiania aplikacji oraz zarządzania prefiksami Wine oraz agenta, działającego pod kontrolą Wine i komunikującego się z API Windows. Początkowo planowano użycie technologii webowych (Electron i VueJS) w realizacji klienta, a serwer napisać go w języku Go, ale stworzone prototypy i negatywne przyjęcie przez społeczność pomysłu przejścia na silnik Electron skłoniły deweloperów do porzucenia tego zamysłu.

W rezultacie zdecydowano się na rozwój klienta i serwera języka Rust, a interfejs graficzny zbudować na bazie frameworka libcosmic. Libcosmic jest wykorzystywany w środowisku pulpitu COSMIC i stanowi nakładkę na bibliotekę iced, oferującą funkcje do tworzenia aplikacji graficznych i apletów. W procesie rozwoju stosowana jest model programowania reaktywnego oraz architektura, znana deweloperom, którzy są obeznani z językiem deklaratywnego budowania interfejsów Elm. Do renderowania mogą być stosowane silniki oparte na Vulkanie, Metal, DX12, OpenGL 2.1+ oraz OpenGL ES 2.0+.

Zauważono, że deweloperom byłoby bardziej komfortowo używać języka Go, ale musieli z niego zrezygnować z powodu braku jakościowych zestawów narzędzi do tworzenia interfejsów użytkownika. Oprócz nowego uproszczonego interfejsu planuje się jako opcję zachować tradycyjną klasyczną wersję interfejsu. Kod agenta zostanie napisany w C# i .NET, co wynika z konieczności uruchamiania usługi WineBridge w środowisku Windows stworzonym przez Wine. Kontener do przetestowania początkowego prototypu Bottles Next, napisanego w Rust, planują opublikować za kilka tygodni. Obecnie dostępna jest tylko najprostsza wersja demonstracyjna.

Projekt Bottles zostanie przepisany w języku Rust z użyciem libcosmic
Projekt Bottles zostanie przepisany w języku Rust z użyciem libcosmic


Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster