32 releases
| 0.14.11+1.45 | Jun 16, 2025 |
|---|---|
| 0.14.9+1.43 | Apr 10, 2025 |
| 0.14.8+1.42 | Mar 24, 2025 |
| 0.14.5+1.39 | Dec 29, 2024 |
| 0.5.0 | Mar 25, 2023 |
#54 in Science
697 downloads per month
Used in 7 crates
285KB
1.5K
SLoC
wayrs
A simple Rust implementation of Wayland client library.
Design decisions
- Single event queue
- No interior mutability
- No
libwaylandcompatibility - Support blocking, non-blocking and async IO
Project status
- The main crate,
wayrs-client, is feature complete and stable.
Project structure
The project is split into multiple crates:
wayrs-client: The main crate which implements Wayland wire protocol. ProvidesConnectiontype which represents open Wayland socket, manages objects and handles callbacks.wayrs-protocols: A collection of Wayland protocols to use withwayrs-client.wayrs-utils: A collection of utils and abstractions forwayrs-client. Includes a shared memory allocator and more.wayrs-egl: Brings OpenGL(-ES) towayrs. Based onEGL_KHR_platform_gbm.wayrs-scanner: Implements thewayrs_client:::generate!macro that generates glue code from.xmlfiles. Generated code for the core protocol is already included inwayrs-client::protocol. Do not use this crate directly.wayrs-proto-parser: Parses wayland.xmlfiles. Used bywayrs-scanner.wayrs-core: The core types, marshalling and unmarshalling implementation. Can be used by clients and servers.
Projects using wayrs
The following projects use wayrs and may serve as additional usage examples:
i3bar-river: Port of i3bar for river.i3status-rs: Feature-rich and resource-friendly replacement for i3status.river-kbd-layout-watcher: Prints current keyboard layout whenever it changes.wayidle: Waits until the compositor reports being N seconds idle.way-secure: Create wayland security contexts.wl-gammarelay-rs: Provides DBus interface to control display temperature and brightness without flickering.wlr-which-key: Keymap manager for wlroots-based compositors.
MSRV
1.79
Dependencies
~1.5MB
~26K SLoC