The release below is from prior to Guacamole's acceptance into the Apache Incubator. It is not an Apache Software Foundation release, and is licensed under the MIT license.

Guacamole 0.9.9

The 0.9.9 release of Guacamole features improved performance due to dynamic use of JPEG and WebP, as well as greatly improved LDAP support. The Guacamole interface overall is now all but completely searchable/filterable, with “Filter” fields available on every connection and user list. This interface-wide availability of filtering includes the home screen, all user and connection lists within the administration interface, as well as the completely new and unified connection history screen.

Everything is searchable

Just about every list in the Guacamole interface is now searchable, including the list of connections on the home screen, all connection and user lists in the admin interface, and the new connection history screen.

Users with large numbers of connections (and administrators managing large numbers of users and connections) can now narrow their view by entering search terms into any of the “Filter” fields. There is no longer any need to hop back and forth through dozens of pages to find that one connection within a haystack of several hundred connections.

Dynamic JPEG/WebP compression

Previous releases of Guacamole encoded images purely using PNG compression. This was very efficient for typical remote desktop use, but anything involving fast moving or photographic imagery would tend to slow down.

Thanks to the contributions and collaboration of Frode Langelo of Skytap, Guacamole will now select between PNG, JPEG, and WebP depending on how fast parts of your screen are changing, the content of those areas, and which encodings are supported by your browser.

LDAP improvements

Guacamole’s LDAP support can now be used with more complex directory hierarchies, such as those used by Active Directory. In addition to directly deriving a user’s DN using a base DN and username attribute, Guacamole can now search for and discover a user’s DN when given the necessary credentials to do so. This allows users to be mapped even if their DNs do not contain usernames.

Encrypted LDAP can now also be used. Past releases supported only unencrypted LDAP connections, but communication with LDAP servers using SSL/TLS or STARTTLS is now fully supported.

Run commands via SSH

The equivalent of the ssh command’s -c option has now been implemented within Guacamole. By specifying a value for the command parameter of an SSH connection (or by entering a value within the appropriate field in the admin interface), the SSH connection will run the specified command instead of simply invoking the default shell.

Sound, printing, and file transfer fixed on Windows 2012

Windows Server 2012 suffers from a bug which requires both RDPDR (drive redirection or printing) and RDPSND (audio) to be loaded for either to work, even if both are not actually needed. Past releases of Guacamole had a workaround for this which automatically loaded RDPDR if audio was enabled, but this workaround did not apply in the other direction. If audio was disabled, printing and file transfer would mysteriously not work.

As of Guacamole 0.9.9, both RDPSND and RDPDR will always be loaded if either is enabled. File transfer, printing, and sound should all work under Windows Server 2012, regardless of which combination of those features is enabled.

Linking Docker images to non-Docker databases

The Guacamole Docker images previously required 100% Docker everything when it Came to deployment. Both the web application and guacd needed to be within Docker, and the database backing the web application (MySQL or PostgreSQL) needed to be within Docker as well.

While all Guacamole components (the web application and guacd) still need to be within Docker if Docker is going to be used, the requirement that the database be within Docker has been removed. The hostname and port of your database can now be specified when creating the Guacamole Docker container. The database does not need to be specified with a Docker link.

Guacamole API and protocol changes

In preparation for supporting real-time hardware encoding of complex grapics, the Guacamole protocol and JavaScript client have been extended to allow streaming of arbitrary video codecs. Developers using the Guacamole API can associate the JavaScript client with codec implementations which will then be used to decode and render video streams.

The Guacamole extension API has also been updated, allowing extensions to automatically invalidate users’ sessions by throwing specific exceptions which by their own nature imply that the user’s current session is invalid. These exceptions are automatically caught and handled within the Guacamole web application, invalidating the user’s session and displaying a login dialog.

Minor improvements / bug fixes

In addition to the above major improvements, several minor improvements and bug fixes are included in 0.9.9, including additional translations, changes to interface layout and behavior, and improved support for Microsoft Edge.