Bottles Als nächstes wird die Neufassung von Bottles to Rust libcosmic verwenden

Bottles Next-Logo

Die Entwickler von Bottles haben kürzlich in einem Blogbeitrag Details zu ihrer Arbeit an Bottles Next veröffentlicht , einer Initiative, die darauf abzielt, die Architektur und die Codebasis des Projekts komplett neu zu gestalten.

In der Erklärung wird darauf hingewiesen, dass die aktuelle Version von Bottles, die in Python mit einer GTK-basierten Schnittstelle geschrieben ist, mit erheblichen Einschränkungen konfrontiert ist , die die Integration neuer Funktionen, wie z. B. macOS-Unterstützung, behindern und Probleme aufwerfen, die nur durch eine tiefgreifende strukturelle Veränderung gelöst werden können.

Vor über einem Jahr haben wir Bottles Next angekündigt, eine komplette Neufassung des Bottles-Projekts. Ursprünglich bestand die Idee darin, Webtechnologien zu nutzen, um das Erlebnis zu erreichen, das wir uns für unsere Benutzer vorgestellt hatten. Wie so oft gab es jedoch umfangreiche Recherchen, Debatten, Experimente und eine kontinuierliche Neubewertung.

Warum sich all diese Mühen machen? Nun, um sicherzustellen, dass wir die richtigen Entscheidungen treffen.

Nach der Ankündigung begannen wir, mit vielen Technologien zu experimentieren, aber vor allem hörten wir auf das Feedback der Community, insbesondere im Zusammenhang mit Electron. Dies veranlasste uns, andere Wege zu erkunden, was uns dazu brachte, Framework-Prototypen zu erstellen, die an die spezifischen Bedürfnisse von Bottles Next angepasst sind.

Und hier sind wir heute.

Deshalb unterteilt der neue Ansatz die Anwendung in drei Hauptkomponenten:

  • Ein Kunde: verantwortlich für die grafische Oberfläche
  • Ein Server: Verantwortlich für die Logik zum Ausführen von Anwendungen und zum Verwalten von Wine-Präfixen
  • Ein Agent: der innerhalb von Wine arbeitet, um direkt mit der Windows-API zu interagieren.

Obwohl anfänglich erwogen wurde, den Client mit Webtechnologien wie Electron und VueJS zu implementieren und den Server in Go zu entwickeln, führten die Reaktionen der Community und die mit den Prototypen erzielten Ergebnisse dazu, dass die Entwickler diese Idee verwarfen.

Daher wurde letztendlich entschieden, Rust sowohl für Client als auch Server zu verwenden, während die grafische Benutzeroberfläche auf dem libcosmic-Framework basiert. Dieses Framework, das in der COSMIC-Desktopumgebung zum Einsatz kommt, ist eine Erweiterung der iced- Bibliothek und ermöglicht die Entwicklung moderner und skalierbarer grafischer Oberflächen. Libcosmic verwendet ein reaktives Programmiermodell und folgt einer Architektur, die der deklarativen Programmiersprache Elm ähnelt, wodurch es Entwicklern, die mit diesem Ansatz vertraut sind, leichter fällt, es zu verstehen.

Flaschen-nächster Rost

Obwohl die Entwickler bevorzugt mit der Programmiersprache Go gearbeitet hätten, entschieden sie sich letztendlich für Rust, da es nur wenige hochwertige Werkzeuge für die Entwicklung grafischer Oberflächen in Go gab. Trotz dieses Wechsels sieht die neue Architektur auch vor, die klassische Version der Benutzeroberfläche optional beizubehalten, um den Nutzern ein vertrautes Erlebnis zu bieten und gleichzeitig neue Standards und Technologien zu integrieren.

Bottles Next wird hinsichtlich des Renderings Engines wie Vulkan, Metal, DX12, OpenGL 2.1+ und OpenGL ES 2.0+ unterstützen und so eine breite Kompatibilität mit verschiedenen Systemen und Hardware gewährleisten. Diese Neuentwicklung verspricht verbesserte Leistung, erweiterte plattformübergreifende Kompatibilität und eine robustere Grundlage für die zukünftige Entwicklung von Bottles.

Dieses Update betrifft sowohl Bottles Legacy (die aktuelle Version von Bottles) als auch Bottles Next. In den kommenden Wochen wird die erste Version von cpak fertiggestellt. Es handelt sich um ein portables, dedupliziertes Softwareverteilungsformat, das vollständig auf OCI-Images basiert.

Es wird außerdem erwähnt, dass der Bottles Next-Agent, der in der von Wine erzeugten Windows-Umgebung läuft, in C# mit .NET geschrieben wird. Diese Wahl trägt den spezifischen Anforderungen des WineBridge-Dienstes Rechnung, der eine effiziente Integration mit der Windows-API in einer emulierten Umgebung erfordert.

Bezüglich der Entwicklung wird in wenigen Wochen ein Container zum Testen des ersten Prototyps von Bottles Next, der vollständig in Rust geschrieben ist, veröffentlicht . Aktuell steht lediglich eine einfache Demoversion zur Verfügung, die Nutzern einen ersten Eindruck von den Möglichkeiten und der Ausrichtung des Projekts vermittelt. Der Umstieg auf Bottles Next verspricht deutliche Verbesserungen in Funktionalität, Kompatibilität und Leistung.

Wenn Sie schließlich mehr darüber erfahren möchten , finden Sie die Details unter folgendem Link.


Als bevorzugte Quelle in Google hinzufügen