riverwm/river

[mirror] A non-monolithic Wayland compositor

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 51 minutes ago
Type:Server / PlatformCategory(s):Operating Systems & LinuxSystems, Hardware & HPC
Added to GitGenius on September 16th, 2026
Created on March 20th, 2020
Open Issues & Pull Requests: 67 (+0)
GitHub issues: Disabled - open counts may still include pull requests.
Number of forks: 169
Total Stargazers: 4,288 (+0)
Total Subscribers: 49 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

GitHub issues are disabled for this repository, so issue analytics and the issue explorer are not available.

Detailed Description

River is a Wayland compositor written in Zig that emphasizes a non-monolithic architecture.

River addresses the complexity of traditional monolithic compositors by decomposing functionality into separate, independent components. This modular approach allows each part of the compositor to be developed, tested, and maintained in isolation while still working together as a cohesive system. The compositor is built on wlroots, a library that provides core Wayland functionality, which River leverages to avoid reimplementing low-level graphics and protocol handling.

River suits developers and users who want a lightweight, composable Wayland environment without the overhead of a full desktop environment. It works well for those who prefer tiling window management and are comfortable with configuration through code or command-line tools. The project appeals to people interested in systems programming who want to understand how a compositor works or who need a minimal base for building custom Wayland workflows. Because River is non-monolithic, it allows users to swap or extend individual components rather than being locked into a single integrated design.

River's development shows consistent activity with regular commits addressing bug fixes, feature refinements, and architectural improvements. The project maintains responsiveness to user-reported issues and incorporates feedback into updates. Development follows a pragmatic approach focused on stability and usability rather than rapid feature expansion. The codebase demonstrates attention to code quality and architectural coherence, with changes that reflect deliberate design decisions about the compositor's structure.