Verdi is a Wayland compositor written in Rust, designed with a focus on performance, stability, and extensibility. The project implements its core functionality from the ground up, taking a fresh approach to compositor architecture while maintaining clean and maintainable code.
Verdi takes an independent approach to Wayland compositor design, implementing core functionality without relying on existing compositor libraries. The architecture is built on two main foundations:
- Tokio: An asynchronous runtime for Rust that provides robust handling of the Wayland protocol's asynchronous nature
- wgpu: A cross-platform graphics API providing broad hardware compatibility and high performance across different platforms
Documentation is available at docs.verdi.rocks. Please note that the documentation is currently under development and may be incomplete in some areas.
For questions, discussions, and development updates, join our community on Discord. Whether you're interested in contributing to development or testing new features, the community is here to help.
For Arch-based distributions, Verdi is available in the AUR as a development package:
paru -S verdi-git
Support for additional distributions is in development.
Verdi uses TOML for configuration. The default configuration file location is:
$XDG_CONFIG_HOME/verdi/verdi.toml
(typically ~/.config/verdi/verdi.toml
)
For configuration options and examples, see the documentation.
Prerequisites:
- Rust: Install via rustup (distribution-provided Rust versions are not supported)
- System Libraries:
libinput
andlibudev
with development headers
Build and install commands:
cargo xtask build && cargo xtask install
Detailed build instructions are available in the documentation.
Verdi is currently in pre-alpha stage, with active development focusing on core functionality and stability.
The project aims to contribute to the Wayland ecosystem by providing a reliable, performant implementation that can serve as a foundation for future development. Each component is carefully designed and implemented with a focus on long-term maintainability and reliability.
This project is licensed under the Apache-2.0 License. For more information, please see the LICENSE file.