O projeto Bottles será reescrito na linguagem Rust utilizando libcosmic.

Os desenvolvedores do programa Bottles, que oferece uma interface para simplificar a instalação, configuração e execução de aplicativos do Windows no Linux, publicaram informações sobre o desenvolvimento da iniciativa Bottles Next, que visa a reestruturação completa da arquitetura e da base de código do projeto. Observa-se que o aplicativo monolítico existente, em Python, com interface em GTK, não permite implementar muitas ideias, como suporte ao macOS, limita as possibilidades e gera problemas que não podem ser resolvidos sem uma mudança radical na arquitetura.

A nova arquitetura implica na divisão do aplicativo em três componentes distintos: um cliente com implementação da interface gráfica, um servidor com a lógica de execução dos aplicativos e gestão dos prefixos Wine, e um agente que opera sob o Wine e interage com a API do Windows. Inicialmente, planejava-se utilizar tecnologias web (Electron e VueJS) para a implementação do cliente, mas servidor escrever em Go, mas os protótipos criados e a rejeição da ideia de transição para o motor Electron pela comunidade levaram os desenvolvedores a abandonar essa ideia.

No final, decidiu-se usar o servidor a linguagem Rust para o desenvolvimento do cliente e construir a interface gráfica com base no framework libcosmic. O libcosmic é utilizado no ambiente de desktop COSMIC e é uma camada sobre a biblioteca iced, que fornece funcionalidades para a criação de aplicativos gráficos e applets. Para o desenvolvimento, é aplicada uma abordagem reativa e uma arquitetura familiar para os desenvolvedores acostumados com a linguagem de construção de interfaces declarativas Elm. Motores baseados em Vulkan, Metal, DX12, OpenGL 2.1+ e OpenGL ES 2.0+ podem ser utilizados para renderização.

Observa-se que os desenvolvedores se sentiriam mais confortáveis usando Go, mas precisaram abandoná-lo devido à falta de ferramentas de qualidade para o desenvolvimento de interfaces de usuário. Além da nova interface simplificada, planeja-se manter como opção a interface clássica familiar. O código do agente será escrito em C# e .NET, o que se explica pela necessidade de executar o serviço WineBridge em um ambiente Windows configurado pelo Wine. O container para testes do protótipo inicial do Bottles Next, escrito em Rust, planeja-se publicar em algumas semanas. Atualmente, apenas uma versão demo simples está disponível.

O projeto Bottles será reescrito na linguagem Rust utilizando libcosmic.
O projeto Bottles será reescrito na linguagem Rust utilizando libcosmic.


Fonte: opennet.ru
Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster