Релиз открытого проекта yserver 1.0.0 — X-сервера на Rust и для запуска MATE, Xfce и Cinnamon

Релиз открытого проекта yserver 1.0.0 — X-сервера на Rust и для запуска MATE, Xfce и Cinnamon — Tech | Versia.media

Состоялся первый значительный релиз открытого X11-сервера yserver. Данное решение было написано с нуля на языке Rust и поддерживает актуальные расширения протокола X11. Проект не стремится воспроизвести все функции Xorg Server, а ограничивается лишь тем функционалом, который необходим для запуска современных сред рабочего стола, оконных менеджеров, приложений и графических библиотек (GTK, Qt, SDL, GLFW). Исходный код yserver опубликован на GitHub под лицензией MIT.

Согласно информации OpenNET, среди протестированных в yserver окружений отмечены MATE, Xfce и Cinnamon, а также оконные менеджеры FVWM3, e16 и wmaker.

В yserver было принято решение не поддерживать устаревшие и узкоспециализированные возможности, такие как обработка нескольких X11-экранов в одном сервере (при этом многомониторный вывод поддерживается), режимы цветности, отличные от TrueColor, непрямой рендеринг (indirect GLX), API драйверов DDX, старые методы работы со шрифтами и подключение клиентов с другим порядком следования байтов (трансляция между big-endian и little-endian).

Вывод графики осуществляется через DRM/KMS и Vulkan-драйверы Mesa. Для управления сеансом и организации доступа к совместно используемым устройствам ввода и вывода применяется библиотека libseat. Помимо автономного X-сервера, поставляется ynest — бэкенд для вложенного запуска, который поддерживает работу из Xwayland или другого X11-сервера.

Работа yserver была протестирована на системах с GPU AMD Ryzen 9 6900HX (Rembrandt, RDNA2, драйвер Mesa RADV), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, драйвер Mesa ANV), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, а также в системах виртуализации с virtio-gpu и виртуальным GPU Venus. В настоящее время yserver поддерживает только работу в Linux, однако в планах отмечено добавление поддержки FreeBSD.

Поддерживаемые yserver расширения X11:

BIG-REQUESTS;

BIG-REQUESTS;

Composite;

Composite;

DAMAGE;

DAMAGE;

DPMS;

DPMS;

DRI3;

DRI3;

GLX;

GLX;

Generic Event Extension;

Generic Event Extension;

MIT-SCREEN-SAVER;

MIT-SCREEN-SAVER;

MIT-SHM;

MIT-SHM;

Present;

Present;

RANDR;

RANDR;

RENDER;

RENDER;

SHAPE;

SHAPE;

SYNC;

SYNC;

X-Resource;

X-Resource;

XFIXES;

XFIXES;

XInputExtension;

XInputExtension;

XKEYBOARD;

XKEYBOARD;

XTEST.

XTEST.

← Tech