forked for master
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-10 10:50:29 -04:00
.builds build: update to Zig 0.15 2025-08-22 14:51:50 +02:00
protocol Update for wlroots 0.15.0 2021-12-21 03:14:03 +00:00
src adapt to current zig: replace @cImport of wlr config/version headers with a translate-c module fed by pkg-config include paths (plus earlier local build.zig modernization) 2026-07-10 03:03:03 -04:00
tinywl tinywl: fix fmt 2025-08-22 15:00:37 +02:00
.gitignore build: update to Zig 0.13.0 2024-06-07 13:56:04 +02:00
build.zig adapt to current zig: replace @cImport of wlr config/version headers with a translate-c module fed by pkg-config include paths (plus earlier local build.zig modernization) 2026-07-10 03:03:03 -04:00
build.zig.zon zon: test deps as lazy fetches so the package resolves when consumed 2026-07-10 10:50:29 -04:00
LICENSE Add MIT license 2020-10-12 21:49:47 +02:00
README.md build: update to Zig 0.15 2025-08-22 14:51:50 +02:00

zig-wlroots

Idiomatic Zig bindings for wlroots.

The main repository is on codeberg, which is where the issue tracker may be found and where contributions are accepted.

Read-only mirrors exist on sourcehut and github.

Completion status

Large parts of the wlroots API are fully bound, more than enough for the river Wayland compositor to use these bindings.

At this stage, I only personally add bindings for new parts of the wlroots API as required by river. If your project requires some part of the wlroots API not yet bound please open an issue or pull request on codeberg.

Dependencies

Usage

See tinywl.zig for an example compositor using zig-wlroots and an example of how to integrate zig-wlroots and its dependencies into your build.zig.

See the C headers of wlroots for documentation.

Versioning

zig-wlroots versions have the form major.minor.revision where major and minor are the major and minor version numbers of the compatible wlroots release. The revision number is incremented for every zig-wlroots release compatible with a given wlroots release. Breaking changes and bugfixes may occur with only a revision version bump. The required Zig version may be updated with a revision version bump.

For example, zig-wlroots 0.16.42 would be compatible with wlroots 0.16, the 42 indicating that there were 42 zig-wlroots releases since the initial wlroots 0.16 compatible zig-wlroots release.

For unreleased versions, the -dev suffix is used (e.g. 0.1.0-dev).

License

zig-wlroots is released under the MIT (expat) license. The contents of the tinywl directory are not part of zig-wlroots and are released under the Zero Clause BSD license.