27 lines
1.9 KiB
Markdown
27 lines
1.9 KiB
Markdown
[![crates.io](http://meritbadge.herokuapp.com/wayland-client)](https://crates.io/crates/wayland-client)
|
|
[![docs.rs](https://docs.rs/wayland-client/badge.svg)](https://docs.rs/wayland-client)
|
|
[![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-client
|
|
|
|
Client side API for the Wayland protocol. This crate provides infrastructure for manipulating
|
|
Wayland objects, as well as object definitions for the core Wayland protocol. Protocol extensions
|
|
can be supported as well by combining this crate with `wayland-protocols`, which provides object
|
|
definitions for a large set of extensions.
|
|
|
|
**Note:** This crate is a low-level interface to the Wayland protocol. If you are looking for a more
|
|
battery-included toolkit for writing a Wayland client app, you may consider
|
|
[Smithay's Client Toolkit](https://crates.io/crates/smithay-client-toolkit), which is built on top
|
|
of it.
|
|
|
|
The crate has different backends to Wayland protocol serialization:
|
|
|
|
- By default, it uses a pure-rust implementation of the protocol, and contains little `unsafe` code.
|
|
- Activating the `use_system_lib` makes it instead bind to the system `libwayland-client.so`. This
|
|
allows you to access C pointer versions of the wayland objects, which is necessary for interfacing
|
|
with other non-Rust Wayland-related libraries (such as for OpenGL support, see the `wayland-egl` crate).
|
|
- Activating the `dlopen` implies `use_system_lib`, but additionnaly the crate will not explicitly
|
|
link to `libwayland-client.so` and instead try to open it at runtime, and return an error if it cannot
|
|
find it. This allows you to build apps that can gracefully run in non-Wayland environment without needing
|
|
compile-time switches. |