zig-wayland-native
A Wayland client written in Zig, with no libwayland. The documentation is
generated from the doc comments, one bundle per module; each module depends
only on the one above it, and present is built against a
consumer's own bindings.
- scanner
- Reads Wayland protocol XML and writes Zig bindings for it. Depends on zxml.
- protocol
- The wire format and the object bookkeeping, with no I/O: bytes and file
descriptors in, events out. Depends on nothing but the standard library.
- client
- The socket: connecting, sending and receiving with file descriptors, and
dispatching events to listeners. Depends on
protocol; Linux only.
- present
- Buffers in shared memory or dma-bufs, a presenter that puts them on a
surface at the compositor's pace with explicit sync if asked, and
linux-dmabuf feedback. Depends on
client and the generated
bindings; Linux only.