[ANNOUNCEMENT] Waltham: a generic Wayland-style IPC over network
Pekka Paalanen
ppaalanen at gmail.com
Fri Oct 28 11:29:05 UTC 2016
Hi,
if you like the Wayland protocol framework, you will probably like
Waltham too, especially if you have ever wished it would work over a
network, not just locally.
Before diving into details, lets set expectations: Waltham is not the
magic bullet that makes Wayland network-transparent! However, Waltham
could be an implementation detail in a software suite(*) that allows
Wayland applications to be ran over a network. In fact, this is the
main motivation behind Waltham: a protocol framework that makes it as
easy as possible to mirror Wayland protocol extensions and replace the
network-incompatible pieces with something else.
In Wayland, you define your protocol messages in an XML file, use a
code generator to create the message bindings, and let the library do
all the hard work of serializing and deserializing it. The library does
not need to be re-built to support new protocol extensions. Tuned for
optimal performance in a local environment, Wayland protocol cannot
reasonably be sent over a network.
Waltham is (will be) the Wayland-style protocol framework built to
support network communications. Just like Wayland, the protocol is
object-oriented, defined in XML files, and you use a code generator to
bind it in server and client programs. Practically all the Wayland
protocol design principles apply also to Waltham protocols - if you can
write Wayland protocols, you can write Waltham protocols.
The major differences from Wayland to Waltham are:
- Waltham uses TCP sockets for communication
- Waltham cannot send file descriptors
- Waltham API is minimal and symmetric between server and client sides
- Waltham does not provide an event loop implementation
- the "registry" implementation is left out of the library, only the
interface is provided
- no multi-threading support for sharing objects between threads
Many of the differences are design decisions based on lessons learned
from working with Wayland for years.
The Waltham project can be found here:
https://github.com/waltham/waltham
The implementation is still missing some major design features, the
biggest one being that we still have to build the protocol bindings
into the library, but it should be good enough to start playing with.
The road to a stable API and ABI includes also things like deciding how
to secure the communications - right now it is completely insecure. We
are keen to have people join the project and contribute. If interested,
please contact us via Github.
Collabora is developing Waltham by the request of ADIT (Advanced Driver
Information Technology), a joint venture company owned by Robert Bosch
GmbH, Robert Bosch Car Multimedia GmbH and DENSO Corporation.
(*) Software design that prompted for Waltham is the Weston surface
remoting for IVI:
https://lists.freedesktop.org/archives/wayland-devel/2016-April/027932.html
In that proposal, Waltham plays the role of the "control channel"
(Section 4.1 in the PDF).
Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20161028/b1b59138/attachment.sig>
More information about the wayland-devel
mailing list