Bottles Daha sonra Bottles to Rust'ın yeniden yazılmasında libcosmic kullanılacak

Şişeler Sonraki logosu

Bottles geliştiricileri , geçtiğimiz günlerde bir blog yazısı aracılığıyla, projenin mimarisini ve kod tabanını tamamen yeniden tasarlamayı amaçlayan Bottles Next adlı girişim üzerinde yapacakları çalışmalar hakkında ayrıntıları açıkladılar .

Açıklamada , Python dilinde yazılmış ve GTK tabanlı bir arayüze sahip olan Bottles'ın mevcut sürümünün , macOS desteği gibi yeni özelliklerin entegrasyonunu engelleyen önemli sınırlamalara sahip olduğu ve ancak köklü bir yapısal değişiklikle çözülebilecek sorunlar yarattığı belirtiliyor.

Bir yıldan fazla bir süre önce Bottles projesinin tamamen yeniden yazılması olan Bottles Next'i duyurduk. Başlangıçta fikir, kullanıcılarımız için hayal ettiğimiz deneyimi elde etmek amacıyla web teknolojilerinden yararlanmaktı. Ancak çoğu zaman olduğu gibi kapsamlı araştırmalar, tartışmalar, deneyler ve sürekli yeniden değerlendirmeler yapıldı.

Neden bunca sıkıntıya katlanıyorsun? Doğru kararları verdiğimizden emin olmak için.

Duyurudan sonra birçok teknolojiyi denemeye başladık ama hepsinden önemlisi topluluktan, özellikle de Electron'la ilgili geri bildirimleri dinledik. Bu bizi diğer yolları keşfetmeye yöneltti ve bu da Bottles Next'in özel ihtiyaçlarına uyarlanmış çerçeve prototipleri yaratmamıza yol açtı.

Ve bugün buradayız.

Bu nedenle yeni yaklaşım, uygulamayı üç ana bileşene ayırıyor:

  • Bir istemci: grafiksel arayüzden sorumludur
  • Bir sunucu: Uygulamaları çalıştırma ve Wine öneklerini yönetme mantığından sorumlu
  • Bir aracı: Windows API ile doğrudan etkileşim kurmak için Wine içinde çalışan bir aracı.

Başlangıçta istemci tarafının Electron ve VueJS gibi web teknolojileriyle, sunucu tarafının ise Go ile geliştirilmesi düşünülmüş olsa da , topluluğun tepkisi ve prototiplerle elde edilen sonuçlar geliştiricileri bu fikirden vazgeçmeye yöneltti.

Bu nedenle, hem istemci hem de sunucu için Rust kullanılmasına , grafik arayüzün ise libcosmic çerçevesine dayanmasına karar verildi. COSMIC masaüstü ortamında kullanılan bu çerçeve, modern ve ölçeklenebilir grafik arayüzlerin oluşturulmasını kolaylaştıran iced kütüphanesinin bir uzantısıdır. Libcosmic, reaktif bir programlama modelini benimser ve bildirimsel Elm diline benzer bir mimari izler; bu da bu yaklaşıma aşina olan geliştiricilerin anlamasını kolaylaştırır.

şişeler-sonraki-pas

Geliştiriciler Go diliyle çalışmayı tercih etseler de , Go'da grafik arayüzleri geliştirmek için yüksek kaliteli araçların sınırlı olması nedeniyle nihayetinde Rust'ı tercih ettiler. Bu geçişe rağmen, yeni mimari, kullanıcılara yeni standartlara ve teknolojilere uyum sağlarken tanıdık bir deneyim sunmak amacıyla arayüzün klasik sürümünü bir seçenek olarak koruma planlarını da içeriyor.

Görüntüleme açısından Bottles Next , Vulkan, Metal, DX12, OpenGL 2.1+ ve OpenGL ES 2.0+ gibi motorları destekleyerek farklı sistemlere ve donanımlara geniş bir uyum sağlayacak. Bu yeniden tasarım, performansı iyileştirmeyi, platformlar arası uyumluluğu genişletmeyi ve gelecekteki Bottles geliştirmeleri için daha sağlam bir temel oluşturmayı vaat ediyor.

Bu güncelleme hem Bottles Legacy'yi ( Bottles'ın güncel sürümü) hem de Bottles Next'i etkiler. Önümüzdeki haftalarda cpak'ın ilk versiyonu tamamlanacak. Tamamen OCI görüntülerine dayalı, taşınabilir, tekilleştirilmiş bir yazılım dağıtım formatıdır.

Ayrıca , Wine tarafından oluşturulan Windows ortamında çalışan Bottles Next aracısının .NET kullanılarak C# dilinde yazılacağı da belirtiliyor . Bu seçim, öykünülmüş bir ortamda Windows API'si ile verimli entegrasyon gerektiren WineBridge hizmetinin özel ihtiyaçlarını karşılıyor.

Geliştirme konusunda, tamamen Rust dilinde yazılmış Bottles Next'in ilk prototipini test etmek için bir konteynerin birkaç hafta içinde yayınlanması bekleniyor . Şimdilik yalnızca temel bir demo sürümü mevcut olup, kullanıcılara projenin yetenekleri ve yönü hakkında ön bir fikir vermektedir. Bottles Next'e geçiş, işlevsellik, uyumluluk ve performans açısından önemli iyileştirmeler vaat ediyor.

Son olarak, bu konu hakkında daha fazla bilgi edinmek isterseniz , ayrıntıları aşağıdaki bağlantıda bulabilirsiniz.


Google'da tercih edilen kaynak olarak ekleyin.