Bottles След това пренаписването на Bottles to Rust ще използва libcosmic

Лого на Bottles Next

Разработчиците на Bottles наскоро разкриха , чрез публикация в блога си , подробности за работата, която ще вършат по Bottles Next, инициатива, насочена към пълно препроектиране на архитектурата и кодовата база на проекта.

В изявлението се споменава, че текущата версия на Bottles, написана на Python с интерфейс, базиран на GTK, е изправена пред значителни ограничения , които възпрепятстват включването на нови функции, като например поддръжката на macOS, и създава проблеми, които могат да бъдат решени само чрез дълбока структурна промяна.

Преди повече от година обявихме Bottles Next, пълно пренаписване на проекта Bottles. Първоначално идеята беше да използваме уеб технологиите, за да постигнем изживяването, което предвидихме за нашите потребители. Въпреки това, както често се случва, имаше обширни изследвания, дебат, експерименти и непрекъсната преоценка.

Защо да минавам през всичките тези проблеми? Е, за да сме сигурни, че взимаме правилните решения.

След обявяването започнахме да експериментираме с много технологии, но преди всичко се вслушахме в обратната връзка от общността, особено тези, свързани с Electron. Това ни подтикна да проучим други пътища, което ни накара да създадем рамкови прототипи, адаптирани към специфичните нужди на Bottles Next.

И ето ни днес.

Ето защо новият подход разделя приложението на три основни компонента:

  • Клиент: отговорен за графичния интерфейс
  • Сървър: отговарящ за логиката за стартиране на приложения и управление на Wine префикси
  • Агент: който работи в Wine, за да взаимодейства директно с Windows API.

Въпреки че първоначално се е обмисляло клиентът да се реализира с уеб технологии като Electron и VueJS, а сървърът да се разработи на Go, реакцията на общността и получените резултати с прототипите накараха разработчиците да се откажат от тази идея.

Следователно, в крайна сметка беше решено да се използва Rust както за клиента, така и за сървъра, докато графичният интерфейс ще бъде базиран на рамката libcosmic. Тази рамка, използвана в десктоп средата COSMIC, е разширение на библиотеката iced , което улеснява създаването на модерни и мащабируеми графични интерфейси. Libcosmic използва реактивен модел на програмиране и следва архитектура, подобна на тази на декларативния език Elm, което улеснява разбирането му от разработчиците, запознати с този подход.

бутилки-следваща-ръжда

Въпреки че разработчиците биха предпочели да работят с езика Go, те в крайна сметка избраха Rust поради ограничената наличност на висококачествени инструменти за разработване на графични интерфейси в Go. Въпреки този преход, новата архитектура включва и планове за запазване на класическата версия на интерфейса като опция, предлагайки на потребителите познато изживяване, като същевременно се адаптира към новите стандарти и технологии.

По отношение на рендерирането, Bottles Next ще поддържа енджини като Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+, осигурявайки широка адаптивност към различни системи и хардуер. Този редизайн обещава подобрена производителност, разширяване на междуплатформената съвместимост и осигуряване на по-стабилна основа за бъдещо разработване на Bottles.

Тази актуализация засяга както Bottles Legacy (текущата версия на Bottles), така и Bottles Next. През следващите седмици първата версия на cpak ще бъде завършена. Това е преносим, ​​дедупликиран формат за разпространение на софтуер, базиран изцяло на OCI изображения.

Споменава се също, че агентът Bottles Next, който работи в среда на Windows, генерирана от Wine, ще бъде написан на C#, използвайки .NET. Този избор отговаря на специфичните нужди на услугата WineBridge, която изисква ефективна интеграция с Windows API в емулирана среда.

Що се отнася до разработката, очаква се до няколко седмици да бъде пуснат контейнер за тестване на първоначалния прототип на Bottles Next, написан изцяло на Rust . Засега е налична само основна демо версия, която позволява на потребителите да получат предварителна представа за възможностите и посоката на проекта. Този преход към Bottles Next обещава значителни подобрения във функционалността, съвместимостта и производителността.

И накрая, ако се интересувате да научите повече за това , можете да намерите подробности на следния линк.


Добавяне като предпочитан източник в Google