TL;DR
Phoenix is a ground-up X server written in the Zig language that aims to be a simpler, safer alternative to Xorg. It is under active development and currently runs nested under another X server, rendering GLX, EGL and Vulkan content with hardware acceleration.
What happened
A new X server project called Phoenix has been developed from scratch in Zig rather than being a fork of the Xorg server. The project targets a smaller, more modern subset of the X11 protocol and is intended to support relatively recent hardware (roughly the past 15 years) with Linux DRM and Mesa GBM. At present Phoenix is not production-ready: it can render simple applications that use GLX, EGL or Vulkan when run nested inside an existing X server and uses hardware acceleration in that nested mode. The design emphasizes safety by leveraging Zig's compile-time/runtime checks (ReleaseSafe builds) and by parsing protocol messages automatically. Phoenix includes a built-in compositor (no tearing by default) and plans features such as per-monitor DPI properties, improved multi-monitor handling, and protocol extensions for capabilities like HDR. Several backends and standalone modes are marked as not yet available.
Why it matters
- Offers a modern, security-conscious reimplementation of an X server that could reduce legacy complexity found in Xorg.
- Targets contemporary hardware and graphics stacks, potentially improving multi-monitor, HDR and tearing behavior.
- Built-in compositor and application isolation could reduce common display and security issues seen on traditional X11 setups.
- Nested hardware-accelerated operation enables developers to test compositors or window managers without restarting their main display server.
Key facts
- Phoenix is implemented from scratch in the Zig programming language and is not a fork of Xorg.
- Current functionality: can render simple GLX, EGL, and Vulkan applications nested inside an existing X server with hardware acceleration.
- Primary goals: simplicity (supporting a modern subset of X11), improved security, and better support for modern display features.
- Application isolation by default: apps can only interact through explicit permission prompts or pre-granted permissions; restricted access yields dummy data rather than errors.
- Includes a built-in compositor that defaults to no tearing; it will disable itself if an external compositor runs or a fullscreen app disables vsync.
- Plans to support modern multi-monitor features (different refresh rates, VRR) and to add per-monitor DPI as a documented randr property.
- Some features and backends (native DRM/GBM standalone mode, Wayland backend) are not yet supported.
- Dependencies listed include Zig 0.14.1, x11 (xcb) for X11 nested mode, Wayland client libraries for Wayland nested mode, libdrm/gbm for DRM backend, and libglvnd for GL/EGL.
What to watch next
- Progress toward a standalone server using the DRM/GBM backend (currently not supported).
- Support for a Wayland backend or suitability as an alternative Xwayland server (Wayland nested mode is listed but not currently supported).
- Expansion from rendering simple test apps to running real-world applications and broader client compatibility.
- Development and adoption of protocol extensions (for example HDR) and finalized per-monitor DPI properties.
Quick glossary
- X server: A display server that implements the X11 protocol, managing windows, input and drawing for clients on Unix-like systems.
- Zig: A systems programming language that emphasizes safety, performance, and explicit control over behavior; used here to implement Phoenix.
- DRM/GBM: Direct Rendering Manager (DRM) is a Linux kernel subsystem for graphics; GBM (Generic Buffer Manager) is used for allocating buffers for graphics rendering on DRM devices.
- Compositor: A component that composes windows and graphical buffers into the final image displayed on screen, often responsible for vsync and tearing prevention.
Reader FAQ
Is Phoenix ready for daily use?
No. The project is not production-ready and currently only supports nested rendering of simple GLX/EGL/Vulkan apps.
Will Phoenix replace the Xorg server?
Not a stated goal. The project acknowledges Xorg supports more of the X11 protocol and a broader range of older hardware.
Can Phoenix run as a standalone X server now?
Not yet. Standalone DRM/GBM backend support is listed as a future capability and is currently not supported.
How can I build or install Phoenix?
The repository provides build commands: 'zig build' for development and 'zig build -Doptimize=ReleaseSafe' or 'sudo zig build install -p /usr/local -Doptimize=ReleaseSafe' for optimized builds.
index : phoenix master A modern X server written from scratch in Zig aboutsummaryrefslogtreecommitdiff log msg author committer range Phoenix Phoenix is a new X server, written from scratch in…
Sources
- Phoenix: A modern X server written from scratch in Zig
- SUSE Developer Working To Reimplement SSH Using The …
- tiawl/X11.zig: libX11 packaged for @ziglang
- Home · Phoenix.new
Related posts
- Fabrice Bellard Releases MicroQuickJS, Tiny ES5-Focused JavaScript Engine
- Bridge Anonymization: Local, reversible PII scrubber for translation pipelines
- Google TV Streamer drops to $80, undercutting its $100 launch price