#api-bindings #client


Low-level bindings to the Wayland protocol

31 releases

new 0.3.2 Sep 25, 2023
0.2.0 Jul 13, 2023
0.1.1 Feb 16, 2023
0.1.0 Dec 27, 2022
0.1.0-alpha9 Mar 29, 2022

#249 in GUI

Download history 4791/week @ 2023-06-08 5161/week @ 2023-06-15 5711/week @ 2023-06-22 4621/week @ 2023-06-29 8513/week @ 2023-07-06 9513/week @ 2023-07-13 8631/week @ 2023-07-20 9863/week @ 2023-07-27 9577/week @ 2023-08-03 9686/week @ 2023-08-10 9476/week @ 2023-08-17 10265/week @ 2023-08-24 9191/week @ 2023-08-31 11225/week @ 2023-09-07 9998/week @ 2023-09-14 10906/week @ 2023-09-21

42,896 downloads per month
Used in 41 crates (16 directly)

MIT license


crates.io docs.rs Continuous Integration codecov


Backend API for wayland crates

This crate provide low-level APIs for interacting with the Wayland protocol, both client-side and server-side. For higher-level interfaces, see the wayland-client and wayland-server crates.

Two possible backends are provided by this crate: the system backend ([sys] module) which relies on the system-provided wayland libraries, and the rust backend ([rs] module) which is an alternative rust implementation of the protocol. The rust backend is always available, and the system backend is controlled by the client_system and server_system cargo features. The dlopen cargo feature ensures that the system wayland libraries are loaded dynamically at runtime, so that your executable does not link them and can gracefully handle their absence (for example by falling back to X11).

Additionnaly the default backends are reexported as toplevel client and server modules in this crate. For both client and server, the default backend is the system one if the associated cargo feature is enabled, and the rust one otherwise. Using these reexports is the recommended way to use the crate.

Both backends have the exact same API, except that the system backend additionnaly provides functions related to FFI.


~98K SLoC