Introduction
Welcome to the Smithay Handbook.
This is a work in progress, and intended to serve as a general manual for building Wayland-related software in Rust, using the tools from the Smithay project.
The project revolves around 3 main components:
- The wayland-rs repository contains low-level bindings to the
Wayland protocols, under the form of several crates. The two most notable being
wayland-client
andwayland-server
, which are the core bindings for client-side and server-side apps. - SCTK, or Smithay Client ToolKit, is a crate designed to handle a significant portion of the plumbing required for writing Wayland client apps. It comes on top of wayland-client, and this book will present it as well.
- Smithay is the flagship crate of the project, and is designed as a framework for writing Wayland servers (also called compositors). It is built on top of the wayland-server crate, and also handles most of the interaction with the system (input devices, graphics, udev, sessions, ...).
The first part of this book is dedicated to client-side apps, while the second part focuses of server-side. If you are interested by the server-side stuff, it is recommended to first get familiar with the client-side, as it is easier to get into and a lot of its concepts map to server-side.