[![crates.io](https://img.shields.io/crates/v/wayland-sys.svg)](https://crates.io/crates/wayland-sys) [![docs.rs](https://docs.rs/wayland-sys/badge.svg)](https://docs.rs/wayland-sys) [![Continuous Integration](https://github.com/Smithay/wayland-rs/workflows/Continuous%20Integration/badge.svg)](https://github.com/Smithay/wayland-rs/actions?query=workflow%3A%22Continuous+Integration%22) [![codecov](https://codecov.io/gh/Smithay/wayland-rs/branch/master/graph/badge.svg)](https://codecov.io/gh/Smithay/wayland-rs) # wayland-sys This crate provides raw bindings to the system `libwayland-*.so` libraries. If you are looking for a Rust API over the Wayland protocol, see the `wayland-client` or `wayland-server` crates instead. Bindings to the different libraries are enabled by the different cargo features: - `client` for bindings to `libwayland-client.so` - `server` for bindings to `libwayland-server.so` - `cursor` for bindings to `libwayland-cursor.so` - `egl` for bindings to `libwayland-egl.so` Furthermore, the `dlopen` cargo feature will switch the library to a mode where, instead of directly linking to these system libraries, it'll instead try to open them at runtime. This allows to create binaries that can gracefully handle being run on non-Wayland environments. In that case the crate should be used with its provided `ffi_dispatch!()` macro, to support both modes seamlessly.