wayland_native
Native Wayland client library
Summary
| Latest Version | Unknown |
|---|---|
| License | Unlicense |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:26 |
Tags
Installation
nimble install wayland_native
choosenim install wayland_native
git clone https://git.sr.ht/~ehmry/wayland-nim
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| wayland_native | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Source
| Repository | https://git.sr.ht/~ehmry/wayland-nim |
|---|---|
| Homepage | https://git.sr.ht/~ehmry/wayland-nim |
| Registry Source | nimble_official |
README
Nim-native Wayland client libary
WORK-IN-PROGRESS
Communicate with Wayland using Nim but without depending on the libwayland C library (and a janky libc, GNU deps, etc).
Project priorities in descending order: - simplicity - efficiency - miminal dependency graph - Protocol compliance
The library is built against the sys I/O dispatcher and uses continuation-Passing style for asynchronicity. The implementation is simple enough to augmented later with support for different dispatchers, should patches be forthcoming.
The library provides a code-generator for producing a Nim module for a given protocol document in XML. Modules are provided for the core protocol and xdg-shell.
Modules generated from protocols contain object types that inherit from an abstract Wl_object along with associated procedures for sending requests and methods for receiving events.
See the example test for how to use the library in practice.