Wayland has gained support for client and server-side programming language bindings.
In work done by Jason Ekstrand, Wayland now has support for server-side language bindings
and client-side language bindings
to allow for better interaction with Wayland via different programming languages.
Ekstrand's commit message describes the work (that's similar on both the client and server sides) as:
1. Adding a wl_resource_set_dispatcher function that corresponds to wl_resource_set_interface. The only difference between the two functions is that the new version takes a dispatcher along with the implementation, data, and destructor. This allows for runtime calling of native language functions for callbacks instead of having to generate function pointers.
2. Adding versions of wl_resource_post_event and wl_resource_queue_event that take an array of wl_argument instead of a variable argument list. This allows for easier run-time argument conversion and removes the need for libffi-based calling of variadic functions.
The work was merged to Wayland Git master today making the language bindings a feature of Wayland 1.3.