Bottlesの開発者たちは最近、ブログ記事を通じて、Bottles Nextに関する作業の詳細を明らかにしました。Bottles Nextは、プロジェクトのアーキテクチャとコードベースを完全に再設計することを目的とした取り組みです。
声明では、 Pythonで記述されGTKベースのインターフェースを持つ現在のバージョンのBottlesは、macOSサポートなどの新機能の組み込みを妨げる重大な制約を抱えており、抜本的な構造変更によってのみ解決できる問題を抱えていると述べている。
1 年以上前、私たちは Bottles プロジェクトを完全に書き直した Bottles Next を発表しました。当初、Web テクノロジーを活用して、ユーザーに思い描いたエクスペリエンスを実現するという考えがありました。しかし、よくあることですが、広範な調査、議論、実験、そして継続的な再評価が行われました。
なぜこのような困難を経験するのでしょうか?そうですね、私たちが正しい決断を下せるようにするためです。
発表後、私たちは多くのテクノロジーの実験を開始しましたが、何よりもコミュニティ、特に Electron に関連するフィードバックに耳を傾けました。これにより、私たちは他の道を模索するようになり、Bottles Next の特定のニーズに適応したフレームワーク プロトタイプを作成することになりました。
そして今日がここです。
そのため、新しいアプローチではアプリケーションを3つの主要コンポーネントに分割しています。
- クライアント: グラフィカル インターフェイスを担当します。
- サーバー: アプリケーションを実行し、Wine プレフィックスを管理するロジックを担当します。
- エージェント: Wine 内で動作して Windows API と直接対話します。
当初はElectronやVueJSといったWeb技術を用いてクライアントを実装し、Go言語でサーバーを開発することが検討されていたが、コミュニティの反応やプロトタイプで得られた結果を受けて、開発者たちはこのアイデアを断念した。
そのため、最終的にクライアントとサーバーの両方にRustを使用し、グラフィカルインターフェースはlibcosmicフレームワークをベースにすることに決定しました。COSMICデスクトップ環境で使用されているこのフレームワークは、現代的でスケーラブルなグラフィカルインターフェースの作成を容易にするicedライブラリの拡張機能です。libcosmicはリアクティブプログラミングモデルを採用し、宣言型言語であるElmに似たアーキテクチャに従っているため、このアプローチに慣れている開発者にとって理解しやすくなっています。

開発者たちはGo言語での作業を希望していたものの、 Go言語で高品質なグラフィカルインターフェース開発ツールが限られているため、最終的にはRustを選択しました。この移行にもかかわらず、新しいアーキテクチャでは、従来のインターフェースをオプションとして維持する計画も含まれており、新しい標準や技術に対応しながらも、ユーザーに馴染みのある操作感を提供します。
レンダリングに関しては、 Bottles NextはVulkan、Metal、DX12、OpenGL 2.1以降、OpenGL ES 2.0以降などのエンジンをサポートし、さまざまなシステムやハードウェアへの幅広い適応性を確保します。この再設計により、パフォーマンスの向上、クロスプラットフォーム互換性の拡張、そして将来のBottles開発のためのより強固な基盤が実現されます。
このアップデートは、Bottles Legacy (Bottles の現在のバージョン) と Bottles Next の両方に影響します。今後数週間のうちに、cpak の最初のバージョンが完成する予定です。これは、完全に OCI イメージに基づいた、移植可能で重複排除されたソフトウェア配布形式です。
また、 Wineによって生成されたWindows環境内で動作するBottles Nextエージェントは、 .NETを使用してC#で記述されることも述べられています。この選択は、エミュレートされた環境でWindows APIとの効率的な統合を必要とするWineBridgeサービスの特定のニーズに対応するものです。
開発に関しては、 Rustで完全に記述されたBottles Nextの初期プロトタイプをテストするためのコンテナが数週間以内にリリースされる予定です。現時点では、プロジェクトの機能と方向性をユーザーが事前に把握できる基本的なデモ版のみが利用可能です。Bottles Nextへの移行により、機能性、互換性、パフォーマンスが大幅に向上することが期待されます。
最後に、これについてさらに詳しく知りたい場合は、以下のリンクから詳細をご覧いただけます。