Here are the data structures with brief descriptions:
| Cguac_audio_encoder | Arbitrary audio codec encoder |
| Cguac_audio_stream | Basic audio stream |
| Cguac_client | Guacamole proxy client |
| Cguac_layer | Represents a single layer within the Guacamole protocol |
| Cguac_object | Represents a single object within the Guacamole protocol |
| Cguac_parser | A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data |
| Cguac_pool | A pool of integers |
| Cguac_pool_int | Represents a single integer within a larger pool of integers |
| Cguac_recording | An in-progress session recording, attached to a guac_client instance such that output Guacamole instructions may be dynamically intercepted and written to a file |
| Cguac_rwlock | This file implements reentrant read-write locks using thread-local storage to keep track of how locks are held and released by the current thread, since the pthread locks do not support reentrant behavior |
| Cguac_socket | The core I/O object of Guacamole |
| Cguac_socket_ssl_data | SSL socket-specific data |
| Cguac_stream | Represents a single stream within the Guacamole protocol |
| Cguac_user | Representation of a physical connection within a larger logical connection which may be shared |
| Cguac_user_info | Information exposed by the remote client during the connection handshake which can be used by a client plugin |