Skylane - implementation of Wayland in Rust

Wojciech Kluczka wojciech.kluczka at gmail.com
Thu May 4 15:59:03 UTC 2017


Hello,

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.

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.
 - I can guess but was the reason to make such dependence?
 - 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?
 - 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?

In many places Wayland (not only Weston) is referred as "reference
implementation" so I didn't really expect such obstacles.

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.

For interested ones, links to skylane and perceptia (window manager /
compositor in Rust using it):
https://github.com/perceptia/skylane
https://github.com/perceptia/perceptia

Best regards,
Wojciech Kluczka
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20170504/384e5317/attachment.html>


More information about the wayland-devel mailing list