Crate wayland_protocols

source ·
Expand description

This crate provides bindings to the official wayland protocol extensions provided in

These bindings are built on top of the crates wayland-client and wayland-server.

Each protocol module contains a client and a server submodules, for each side of the protocol. The creation of these modules (and the dependency on the associated crate) is controlled by the two cargo features client and server.

§Protocol categories

The protocols provided in this crate are grouped in 4 main categories:

  • The wp module contains general purpose wayland protocols
  • The xdg module contains protocols specifically related to window management
  • The xwayland module contains protocols used by xwayland.
  • The ext module contains protocols that do not fit into the three previous categories.

§Staging protocols

The cargo feature staging enables the generation of the staging protocols.

These protocols are ready for wider adoption and clients and compositors are encouraged to implement staging protocol extensions where a protocol’s functionality is desired.

Although these protocols should be stable, the protocols may still be completely replaced in a new major version or with a completely different protocol.

§Unstable protocols

The wayland-protocols project previously had a notion of “unstable protocols” representing protocols that are still being worked on and evolving. These protocols are recognized by the use of the prefix z in their interface names.

This category has now been deprecated and is no longer supposed to be used, however several protocols are still under that umbrella. We can expect them to be replaced by staging and stable protocols in the long term, but in the meantime you can enable them with the unstable cargo feature.

§Other protocols

Additionally, more protocol extensions are provided here:


  • Miscellaneous protocols
  • Generic wayland protocols
  • Protocols related to window management
  • XWayland related protocols