The developers of the program Bottles, which simplifies the installation, setup, and launch of Windows Applications in Linux, have released details about the development of their new initiative, Bottles Next. This project aims to completely overhaul the architecture and project code base. The current monolithic application written in Python with a GTK interface has limitations that prevent the implementation of certain features, such as MacOS support, and leads to unresolved problems that require a fundamental architectural change.
The new architecture of Bottles Next involves splitting the application into three separate components: a client with a graphical interface, a server handling application logic and Wine prefixes management, and an agent working with Wine and Windows API interaction. Initially, plans were to use Electron and Vuejs for the client web technology implementation, with the server coded in GO. However, feedback from the community led developers to opt for Rust language for both client and server development. The graphical interface will be based on the libcosmic framework, known for its use among the Cosmic desktop environment.
The development approach will involve reactive programming and a declarative interface construction model familiar to developers. While the GO language was preferred, the lack of suitable tools for user interface development led to its abandonment. The classic GTK version of the client will still be available as an option. The agent’s code will be written in C# and .NET to support the Wine Bridge service in Windows. A prototype of Bottles Next, written in Rust, is expected to be released for testing soon with only a basic demo version currently available.