This project contains rust crates for using the wayland protocol, both client side and server side.
This repository actually hosts 8 crates. The 3 main crates you'll likely want to use:
- wayland-client and wayland-server are the main crates for client and server side bindings
- wayland-protocols regroups bindings on the official protocol extentions available
There are also two auxilliary crates:
- wayland-egl, which is necessary client-side for OpenGL integration
- wayland-cursor, which helps with loading cursor images from the system themes for use in your apps
And finally 3 internal crates, that you'll need only for integrating a custom protocol extension or doing FFI:
- wayland-scanner is the crate used to convert the XML protocol specifications into rust code
- wayland-backend contains the actual implementation of the protocol logic. It actually provides two backends: a rust implementation of the protocol, and a backend using the system wayland libraries (for FFI contexts).
- wayland-sys is the bindings to the C wayland libraries, used by wayland-backend
The documentation for the master branch is available online.
The documentation for the releases can be found on docs.rs: wayland-client wayland-server wayland-protocols wayland-egl wayland-cursor wayland-backend wayland-scanner wayland-sys
Requires at least rust 1.65.0 to be used, and version 1.15 of the wayland system libraries if using the system backend.
You can come chat about the different wayland-rs crates, both for developpement and support, in the Matrix
chatroom #wayland-rs:matrix.org
.