Expand description
A safe and ergonomic Rust client for the Proxmox VE API.
This crate provides a strongly-typed interface for interacting with Proxmox Virtual Environment.
Validation rules (like password strength, DNS resolution) are opt-in via a ValidationConfig.
By default, only basic format checks are performed to ensure the values can be used in HTTP requests.
§Example
use leeca_proxmox::{ProxmoxClient, ProxmoxResult};
#[tokio::main]
async fn main() -> ProxmoxResult<()> {
let mut client = ProxmoxClient::builder()
.host("192.168.1.182")
.port(8006)
.secure(false) // HTTP for local development
.accept_invalid_certs(true) // Testing & Self signed certs
.enable_password_strength(3) // Optional validation
.block_reserved_usernames() // Optional validation
.build()
.await?;
client.login().await?;
println!("Authenticated: {}", client.is_authenticated().await);
Ok(())
}Structs§
- Balloon
Info - Balloon device information.
- Create
VmParams - Parameters for creating a new VM.
- Memory
Info - Memory usage information.
- Node
DnsConfig - DNS configuration for a Proxmox node.
- Node
List Item - A node in the Proxmox cluster.
- Node
Status - Detailed status information for a Proxmox node.
- Proxmox
Client - A strongly-typed client for the Proxmox VE API.
- Proxmox
Client Builder - Builder for
ProxmoxClient. - Rate
Limit Config - Configuration for rate limiting.
- Validation
Config - Configuration for validating client inputs.
- VmConfig
- VM configuration from
/nodes/{node}/qemu/{vmid}/config. - VmList
Item - A virtual machine as returned by the
/nodes/{node}/qemuendpoint. - VmStatus
Current - Detailed runtime status of a VM from
/nodes/{node}/qemu/{vmid}/status/current.
Enums§
- Cluster
Resource - A resource discovered in the Proxmox cluster.
- Proxmox
Error - Enumeration of possible errors.
- Validation
Error - Validation-specific errors.
Type Aliases§
- Proxmox
Result - Result type alias for Proxmox operations.