The latest release of the composite manager River 0.4.0 has been unveiled, showcasing a unique approach compared to other composite managers based on the Wayland protocol. River adopts a modular architecture where the window manager is separated into a distinct program, offering users the flexibility to choose window managers according to their preferences. Developed in the Zig language, the project code is freely available under the GPLv3 license.
One of the key features of River is its compatibility with both nested sessions running on X11 and Wayland servers, as well as direct execution using KMS/DRM drivers for output. To further distinguish between composite and window managers, the project is spearheading the development of the Wayland protocol river-window-management-v1. The window manager encompasses various functions including window decoration, input focus control, pointer management, keyboard shortcuts, and window positioning.
Users have the option to seamlessly switch between different window managers without interrupting their session. A selection of 16 River-compatible window managers, such as tiled managers and stack-based managers, are available for users to choose from. Xwayland support enables the running of X11 applications within River.
By separating composite and window managers, River aims to lower the barrier for creating window managers, facilitate the implementation of managers in high-level languages with garbage collection, enable hot-swappable window managers without server restarts, and streamline experimentation in window manager design.
Although the river-window-management-v1 protocol is limited in terms of advanced 3D desktop operations, such as complex effects and interfaces for virtual reality systems, the current focus is on simple animations. Future plans involve implementing more sophisticated effects using shaders to enhance user experience.

