Rust-Powered Yserver 1.0.0 Debuts, Supports MATE, Xfce

Published The first significant release of the X11 server yserver, written from scratch in Rust and supporting the latest X11 protocol extensions. The project does not aim to replicate all the capabilities of Xorg Server and is limited only to the functionality required to run modern desktop environments, window managers, applications and graphics libraries (GTK, Qt, SDL, GLFW). The tested environments included MATE, Xfce and Cinnamon, as well as the FVWM3, e16 and wmaker window managers. The project code is distributed under the MIT license.

Yserver has decided not to support outdated and specific features, such as processing multiple X11 screens in one server (multi-monitor output is supported), color modes other than TrueColor, indirect rendering (indirect GLX), DDX driver API, old working methods with fonts and connecting clients with a different byte order (translation between big-endian and little-endian).

Graphics output is organized through DRM/KMS and Mesa Vulkan drivers. The libseat library is used to manage the session and provide access to shared input and output devices. In addition to the separate X server, ynest is supplied – a backend for nested launch, which supports work from Xwayland or another X11 server.

The work has been tested on systems with AMD Ryzen 9 6900HX GPU (Rembrandt, RDNA2, RADV mesa driver), AMD RX580 (Polaris/GCN4, RADV), Intel i5-7200U (Kaby Lake, ANV mesa driver), NVIDIA GTX 1050, Snapdragon X1 X1E80100 (Adreno X1, Turnip), Apple M1 MBA, M2 MBP, as well as in virtualization systems with virtio-gpu and virtual GPU Venus. Currently only supports running on Linux, but plans include adding FreeBSD support.

Supported X11 extensions:

  • BIG-REQUESTS
  • Composite
  • DAMAGE
  • DPMS
  • DRI3
  • GLX
  • Generic Event

/Reports, release notes, official announcements.