Проектът 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