Guacamole Python Client
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
guacamole
tests
.gitignore
.travis.yml
CHANGES.txt
LICENSE
MANIFEST.in
README.rst
dev_requirements.txt
setup.py
tox.ini

README.rst

PyGuacamole

A Python client library for communication with Guacamole server (guacd)

https://travis-ci.org/mohabusama/pyguacamole.svg?branch=master

Installation

Using pip

$ pip install pyguacamole

From source

$ python setup.py install

Usage

GuacamoleClient handles communication with a running guacd server via Guacamole Protocol.

GuacamoleClient must be used by a broker server which handles communication with a Javscript application running in the browser. GuacamoleClient implements the methods that enables communication with guacd server (send & receive).

First step should be establishing handshake with guacd server, then Broker server should handle instruction sending and receiving:

  • send: send instruction to guacd server
  • receive: receive instruction from guacd server
>>> from guacamole.client import GuacamoleClient
>>> client = GuacamoleClient('127.0.0.1', 4822)
>>> client.handshake(protocol='rdp', hostname='localhost', port=3389)

Once instruction is received from guacd server, it should be sent immediately to the browser

>>> instruction = client.receive()
>>> instruction
'4.size,1.0,4.1024,3.768;'

and once instruction is sent from browser, it should be sent immediately to guacd server

>>> instruction = '5.mouse,3.400,3.500;'
>>> client.send(instruction)

Notes

PyGuacamole is released under the MIT License and is based on the initial effort by Rescale django-guacamole project.