add protocols submodule latest
c1c2e448 — Caleb Connolly 5 months ago
misc: correct protocols-wlr version
ac344c42 — Caleb Connolly 5 months ago
wlr-protocols: use my fork with foreign toplevel PID exporting


browse  log 



You can also use your local clone with git send-email.

Continuous Integration codecov

#Wayland rust crates

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.59.0 to be used, and version 1.15 of the wayland system libraries if using the system backend.

#Chat and support

For general quick questions you can get answers in the chat room.

The chat room is bridged over 2 chat servers: