A smithy for rusty wayland compositors
Smithay aims to provide building blocks to create wayland compositors in Rust. While not being a full-blown compositor, it'll provide objects and interfaces implementing common functionalities that pretty much any compositor will need, in a generic fashion.
It supports the core Wayland protocols, the official protocol extensions, and some external extensions, such as those made by and for wlroots and KDE
Also:
- Documented: Smithay strives to maintain a clear and detailed documentation of its API and its functionalities. Compiled documentations are available on docs.rs for released versions, and here for the master branch.
 - Safety: Smithay will target to be safe to use, because Rust.
 - Modularity: Smithay is not a framework, and will not be constraining. If there is a part you don't want to use, you should not be forced to use it.
 - High-level: You should be able to not have to worry about gory low-level stuff (but Smithay won't stop you if you really want to dive into it).
 
Smithay as a compositor library has its own sample compositor: anvil.
To get informations about it and how you can run it visit anvil README
- Cosmic: Next generation Cosmic desktop environment
 - Catacomb: A Wayland Mobile Compositor
 - MagmaWM: A versatile and customizable Wayland Compositor
 - Niri: A scrollable-tiling Wayland compositor
 - Strata: A cutting-edge, robust and sleek Wayland compositor
 - Pinnacle: A WIP Wayland compositor, inspired by AwesomeWM
 - Sudbury: Compositor designed for ChromeOS
 
(This list can depend of features you enable)
libwaylandlibxkbcommonlibudevlibinputlibgbmlibseatxwayland
If you have questions or want to discuss the project with us, our main chatroom is on Matrix: #smithay:matrix.org.