Проект Bottles будет переписан на языке Rust с использованием libcosmic

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

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

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

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

CFD0C5CECEC5D4_1735399495.png

CFD0C5CECEC5D4_1735397616.png



Источник: http://www.opennet.ru/opennews/art.shtml? num=62478

©  OpenNet