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

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

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

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

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

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


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