// the find
lv2/pugl
A minimal portable API for embeddable GUIs
Pugl is a small C library that gives an embedded GUI a portable window, event queue and drawing surface on X11, macOS and Windows, with optional Cairo, OpenGL and Vulkan backends. It is aimed at audio plugin authors and anyone who needs a window inside a host application that isn't built on Pugl. It stops at windowing and events, so you still bring your own widget layer.
The backends are split by platform and by drawing API (x11_cairo.c, win_gl.c, mac_vulkan.m), so the rendering choice is made at build time and the core stays thin. The explicit-context, no-static-data rule means several views can live in one process, which is the case plugin hosts hit first, and it is the main thing to check if you are comparing against GLFW-style libraries that keep global state. The stub backend lets host integration code run without a display, and the only dependencies are system libraries.
The README says the API may break occasionally while it moves toward a stable release, so vendoring a copy means you own the upgrade work. The author also says manual testing is still required. The test directory has programs for window, clipboard and cursor behaviour, but each platform still needs someone running the examples by hand. The C++ bindings live in a subproject whose documentation is described as a work in progress, so you will be reading headers. Wayland is not mentioned anywhere, and the only Linux backend listed is X11, so pure Wayland sessions would depend on XWayland, which the README does not address.