Представена е GUI библиотека Cosmoe, която поддържа работа в Linux среди на базата на Wayland. Cosmoe позволява създаването на програми с графичен интерфейс на C++, използвайки API в стил библиотеката от класове на операционната система BeOS. Библиотеката дава възможност за директно стартиране на Linux програми, използващи API BeOS. Кодът на проекта се разпространява под MIT лиценция.
Cosmoe предлага набор от C++ класове, позволяващи бързо и лесно създаване на потребителски интерфейси. От една страна, Cosmoe е значително по-прост и компактен от такива тулкити като GTK и Qt, но от друга страна позволява създаването на интерфейси, които изглеждат по-съвременно в сравнение с легковесните FLTK и Xforms. На остарели системи Cosmoe предлага много ниска консумация на ресурси, а на съвременни позволява да се извлече максимална производителност от хардуера, благодарение на активното използване на многопоточност. Предоставя се колекция от примери на приложения, използващи Cosmoe за създаване на интерфейси, сред които емулатор на терминал, редактор на стилове и прости игри.
Библиотеката е основана като легковесен проект, който не изисква сървърни компоненти (app_server, registrar) и е произлязла от кодовата база на проекта Cosmoe Classic, пренасочен за работа повърхностно на композитни сървъри, използващи протокол Wayland. Проектът Cosmoe Classic работаеше по портироването на средата Haiku OS за работа повърхностно на ядрото Linux и прилагаше рисуването на интерфейса в прозорец, създаден с помощта на библиотеката SDL. Разработката на Cosmoe Classic беше възобновена миналата година след седемнадесетгодишно прекъсване.
В момента проектът е преориентиран от разработването на fork на ОС Haiku към създаването на самостоятелна библиотека за графични приложения за Linux. В сегашния етап разработката е на алфа-стадия, като библиотеката вече поддържа около 95% от всички възможности на API BeOS. От най-важните ограничения се отбелязва липсата на поддръжка за незабележки екземпляри от тип BBitmap, необходими за хардуерно ускорение на рисуването, и неподготвеност на API BFilePanel, генериращ диалози за отваряне и запазване на файлове.

Източник: opennet.ru
