Skip to main content

guacamole_client/
lib.rs

1#![forbid(unsafe_code)]
2#![warn(missing_docs)]
3#![allow(clippy::missing_errors_doc)]
4//! Rust client for the [Apache Guacamole REST API](https://guacamole.apache.org/).
5//!
6//! # Quick start
7//!
8//! ```no_run
9//! # async fn example() -> guacamole_client::Result<()> {
10//! let mut client = guacamole_client::GuacamoleClient::new("http://localhost:8080/guacamole")?;
11//! client.login("guacadmin", "guacadmin").await?;
12//!
13//! let users = client.list_users(None).await?;
14//! for (username, user) in &users {
15//!     println!("{username}: {user:?}");
16//! }
17//!
18//! client.logout().await?;
19//! # Ok(())
20//! # }
21//! ```
22
23mod auth;
24mod client;
25mod connection;
26mod connection_group;
27/// Error types for the Guacamole client.
28pub mod error;
29mod history;
30mod language;
31mod patch;
32mod permission;
33mod schema;
34mod server_patch;
35mod sharing_profile;
36mod tunnel;
37mod user;
38mod user_group;
39mod validation;
40
41pub use auth::AuthResponse;
42pub use client::GuacamoleClient;
43pub use connection::{ActiveConnection, Connection};
44pub use connection_group::ConnectionGroup;
45pub use error::{Error, Result};
46pub use history::HistoryEntry;
47pub use patch::PatchOperation;
48pub use sharing_profile::{SharingProfile, SharingProfileSummary};
49pub use user::{PasswordChange, User, UserPermissions};
50pub use user_group::UserGroup;