#wayland #codegen

build wayland-scanner

Wayland Scanner for generating rust APIs from XML wayland protocol files. Intented for use with wayland-sys. You should only need this crate if you are working on custom wayland protocol extensions. Look at the crate wayland-client for usable bindings.

67 releases (13 breaking)

0.21.0-alpha1 Jul 18, 2018
0.20.12 Aug 15, 2018
0.20.11 Jul 17, 2018
0.14.1 Mar 9, 2018
0.2.0 Nov 19, 2015

#3 in GUI

Download history 2480/week @ 2018-06-10 2599/week @ 2018-06-17 2640/week @ 2018-06-24 3171/week @ 2018-07-01 2536/week @ 2018-07-08 2672/week @ 2018-07-15 3596/week @ 2018-07-22 2660/week @ 2018-07-29 3519/week @ 2018-08-05 3157/week @ 2018-08-12 2963/week @ 2018-08-19 3116/week @ 2018-08-26 2897/week @ 2018-09-02

12,668 downloads per month
Used in 234 crates (6 directly)

MIT license


crates.io Build Status codecov

Wayland client

These are bindings to the reference implementation of the wayland protocol. This is not a pure rust implementation of the wayland protocol, and thus requires libwayland-client.so to be available.

This repository actually hosts 6 crates. The 4 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
  • wayland-commons contains various definitions that are used by the other crates. It is re-exported in both wayland-client and wayland-server.

And 2 internal crates, that you'll need only for integrating a custom protocol extension:

  • wayland-sys is the actual C bindings, on which the crates are built
  • wayland-scanner is the crate used to convert the XML protocol specifications into rust code


The documentation for the master branch is available online.

The documentation for the releases can be found on docs.rs:


Requires at least rust 1.20 to be used (using bitflags 1.0 for associated constants), and version 1.12 of the wayland system libraries.