Online / 6 & 7 February 2021


Zig: the perfect language for a wayland compositor?

Bringing increased type safety to libwayland and wlroots

I explore how I have eliminated nearly all void pointer casting from the libwayland/wlroots APIs in my Zig bindings without introducing overhead or significantly increasing complexity. This will include a demonstration of how Zig's compile time code execution features make such a task quite straightforward. I will then discuss the experience of updating river, my wayland compositor, to use the bindings over the auto-generated bindings provided by Zig's @cImport() feature.


Isaac Freund