[Spice-devel] Translating the Spice protocol using spice-client-glib

Michael Jumper mike.jumper at guac-dev.org
Sat Dec 8 23:56:42 PST 2012


I am looking to use spice-client-glib (which seems to be the only
low-level client library available) to implement a plugin for guacd
which translates between the Spice protocol and the Guacamole
protocol, thus adding Spice support to Guacamole (an HTML5 remote
desktop gateway).

At the surface, implementation using spice-client-glib seems
straightforward, but I'm worried about information lost in the
reduction from graphical updates supported by Spice (including cached
updates) to a simple rect passed to a client implementation via the
"display-invalidate" signal from the display channel. I've gone over
the public API of spice-client-glib, as well as the code that drives
it, and while I can find code that handles cached updates, I don't see
any way this is exposed to a client implementation driven by

Information regarding whether a graphical change is the result of a
cached drawing operation, as well as information regarding what image
data was cached, is necessary for a client implementation to take
advantage of similar caching capabilities of the destination device or
protocol, in this case the Guacamole protocol. Lacking this, my
choices seem to be limited to modifying spice-client-glib to add the
necessary meta-information to the "display-invalidate" signal, or
writing my own client implementation from scratch.

Any advice? Am I missing something?


- Mike Jumper

More information about the Spice-devel mailing list