Проектът Bottles ще бъде пренаписан на Rust с използване на libcosmic

Разработчиците на програмата Bottles, която предлага интерфейс за улесняване на инсталирането, настройването и стартирането на Windows приложения в Linux, публикуваха информация за развитието на инициативата Bottles Next, насочена към пълна ревизия на архитектурата и кодовата база на проекта. Отбелязва се, че съществуващото монолитно приложение на Python с интерфейс на GTK не позволява реализирането на много идеи, като поддръжка на macOS, ограничава възможностите и води до възникване на проблеми, които не могат да бъдат решени без радикално изменение на архитектурата.

Новата архитектура предполага разделянето на приложението на три отделни компонента: клиент с реализация на графичния интерфейс, сървър с логика за стартиране на приложения и управление на префиксите Wine и агент, работещ под управлението на Wine и взаимодействащ с API на Windows. Първоначално се планираше да се използват уеб технологии (Electron и VueJS) за реализацията на клиента, но сървър да бъде написан на езика Go, но създадените прототипи и отказът на общността от идеята за преминаване на движка Electron накараха разработчиците да се откажат от тази идея.

В крайна сметка беше решено за разработката на клиента да се използва сървър езикът Rust, а графичният интерфейс да се изгражда на базата на фреймворка libcosmic. Libcosmic се използва в работната среда COSMIC и представлява надстройка над библиотеката iced, предоставяща функции за създаване на графични приложения и аплети. За разработката се прилага модел на реактивно програмиране и архитектура, позната на разработчиците, които са запознати с декларативния език за построяване на интерфейси Elm. За рендиране могат да се използват движки на базата на Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+.

Отбелязва се, че разработчиците биха предпочели да използват езика Go, но му се наложи да се откажат заради липсата на качествени инструменти за разработка на потребителски интерфейси. Освен новия опростен интерфейс, планира се да бъде запазен и познатият класически вариант на интерфейса като опция. Кодът на агента ще бъде написан на C# и .NET, което обяснява необходимостта от стартиране на услугата WineBridge в Windows среда, формирана от Wine. Контейнерът за тестването на началния прототип Bottles Next, написан на Rust, се планира да бъде публикуван след няколко седмици. В момента е налична само най-простата демо версия.

Проектът Bottles ще бъде пренаписан на Rust с използване на libcosmic
Проектът Bottles ще бъде пренаписан на Rust с използване на libcosmic


Източник: opennet.ru
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster