Bottles A seguir, a reescrita de Bottles to Rust usarĂ¡ libcosmic

PrĂ³ximo logotipo da Garrafas

Os desenvolvedores do Bottles revelaram recentemente , por meio de uma postagem no blog , detalhes sobre o trabalho que realizarĂ£o no Bottles Next, uma iniciativa que visa redesenhar completamente a arquitetura e a base de cĂ³digo do projeto.

A declaraĂ§Ă£o menciona que a versĂ£o atual do Bottles, escrita em Python com uma interface baseada em GTK, enfrenta limitações significativas que dificultam a incorporaĂ§Ă£o de novos recursos, como o suporte ao macOS, e apresenta problemas que sĂ³ podem ser resolvidos por meio de uma mudança estrutural profunda.

HĂ¡ mais de um ano, anunciamos o Bottles Next, uma reescrita completa do projeto Bottles. Inicialmente, a ideia era aproveitar as tecnologias web para alcançar a experiĂªncia que idealizamos para nossos usuĂ¡rios. No entanto, como Ă© frequentemente o caso, houve extensas pesquisas, debates, experiĂªncias e reavaliações contĂ­nuas.

Por que passar por todo esse problema? Bem, para ter certeza de que tomamos as decisões corretas.

ApĂ³s o anĂºncio, começamos a experimentar diversas tecnologias, mas acima de tudo, ouvimos o feedback da comunidade, principalmente daquelas relacionadas ao Electron. Isto levou-nos a explorar outros caminhos, o que nos levou a criar protĂ³tipos de framework adaptados Ă s necessidades especĂ­ficas da Bottles Next.

E aqui estamos hoje.

Por isso, a nova abordagem divide a aplicaĂ§Ă£o em trĂªs componentes principais:

  • Um cliente: responsĂ¡vel pela interface grĂ¡fica
  • Um servidor: responsĂ¡vel pela lĂ³gica para executar aplicações e gerenciar prefixos Wine
  • Um agente: que opera dentro do Wine para interagir diretamente com a API do Windows.

Embora inicialmente se tenha considerado implementar o cliente com tecnologias web como Electron e VueJS, e desenvolver o servidor em Go, a reaĂ§Ă£o da comunidade e os resultados obtidos com os protĂ³tipos levaram os desenvolvedores a abandonar essa ideia.

Portanto, decidiu-se finalmente usar Rust tanto para o cliente quanto para o servidor, enquanto a interface grĂ¡fica seria baseada no framework libcosmic. Este framework, usado no ambiente de desktop COSMIC, Ă© uma extensĂ£o da biblioteca iced , que facilita a criaĂ§Ă£o de interfaces grĂ¡ficas modernas e escalĂ¡veis. O libcosmic adota um modelo de programaĂ§Ă£o reativa e segue uma arquitetura similar Ă  da linguagem declarativa Elm, tornando-o mais fĂ¡cil de entender para desenvolvedores familiarizados com essa abordagem.

garrafas-prĂ³xima-ferrugem

Embora os desenvolvedores preferissem trabalhar com a linguagem Go, optaram por Rust devido Ă  disponibilidade limitada de ferramentas de alta qualidade para o desenvolvimento de interfaces grĂ¡ficas em Go. Apesar dessa transiĂ§Ă£o, a nova arquitetura tambĂ©m inclui planos para manter a versĂ£o clĂ¡ssica da interface como uma opĂ§Ă£o, oferecendo aos usuĂ¡rios uma experiĂªncia familiar enquanto se adapta aos novos padrões e tecnologias.

Em termos de renderizaĂ§Ă£o, o Bottles Next oferecerĂ¡ suporte a engines como Vulkan, Metal, DX12, OpenGL 2.1+ e OpenGL ES 2.0+, garantindo ampla adaptabilidade a diferentes sistemas e hardwares. Essa reformulaĂ§Ă£o promete oferecer desempenho aprimorado, ampliar a compatibilidade entre plataformas e fornecer uma base mais robusta para o desenvolvimento futuro do Bottles.

Esta atualizaĂ§Ă£o afeta o Bottles Legacy (a versĂ£o atual do Bottles) e o Bottles Next. Nas prĂ³ximas semanas a primeira versĂ£o do cpak serĂ¡ concluĂ­da. É um formato de distribuiĂ§Ă£o de software portĂ¡til e desduplicado, baseado inteiramente em imagens OCI.

TambĂ©m foi mencionado que o agente Bottles Next, que opera no ambiente Windows gerado pelo Wine, serĂ¡ escrito em C# usando .NET. Essa escolha atende Ă s necessidades especĂ­ficas do serviço WineBridge, que requer integraĂ§Ă£o eficiente com a API do Windows em um ambiente emulado.

Em relaĂ§Ă£o ao desenvolvimento, um contĂªiner para testar o protĂ³tipo inicial do Bottles Next, escrito inteiramente em Rust, deverĂ¡ ser lançado em algumas semanas . Por enquanto, apenas uma versĂ£o de demonstraĂ§Ă£o bĂ¡sica estĂ¡ disponĂ­vel, permitindo que os usuĂ¡rios tenham uma ideia preliminar das capacidades e da direĂ§Ă£o do projeto. Essa transiĂ§Ă£o para o Bottles Next promete melhorias significativas em funcionalidade, compatibilidade e desempenho.

Por fim, se tiver interesse em saber mais sobre isso , vocĂª pode encontrar os detalhes no seguinte link.


Adicionar como fonte preferencial no Google