<div dir="ltr">Hello,<br><div><br>This was supposed to be only a short announcement of Skylane - implementation of Wayland in Rust - but it was pointed to me that one can not use hardware acceleration without original libwayland so I have to also ask some questions.<br><br>On client side there's not much to worry about (as far as I could see) but server has to use mesa extension which adds global object to display, relying on concrete implementation.<br> - I can guess but was the reason to make such dependence?<br> - Would that be feasible to add another more generic extension providing data needed to create wl_drm global by server instead of implicitly adding it in mesa?<br> - I didn't look at details of implementation. Probably not, but would it be feasible to provide wl_drm global without any extension, using only available drm/gbm API?<br><br>In many places Wayland (not only Weston) is referred as "reference implementation" so I didn't really expect such obstacles.<br><br>I guess questions like "why new implementation?" or "why not bindings?" will appear, so here are some words in advance. There is one project aiming to create Rust bindings, but at the time I started there was no support for server side (I don't know how about now) and whole think was about adding another complicated abstraction layer dumping straightforwardness (and performance). On the other hand Rust provides great support for multi-threading so it would be wasteful to impose on users how they create wayland thread. Removing that what left is creating sockets, dispatching and generating some marshaling code. Not much. And without using libwayland this can be clean and slick.<br><br>For interested ones, links to skylane and perceptia (window manager / compositor in Rust using it):<br><a href="https://github.com/perceptia/skylane">https://github.com/perceptia/skylane</a><br><a href="https://github.com/perceptia/perceptia">https://github.com/perceptia/perceptia</a><br><br>Best regards,<br>Wojciech Kluczka<br><br></div></div>