pbs-rust
Rust SDK for the Proxmox Backup Server API. Generated
from the upstream apidoc.js from Proxmox Backup Server via openapi-generator-cli with
custom Mustache template overrides.
Not an official Proxmox project. Community SDK derived from the upstream
apidoc.js. Always verify against the upstream API viewer. https://pbs.proxmox.com/.
Targets reqwest + serde. Requires Rust ≥ 1.75 (2021 edition).
Install
Published to crates.io on every GitHub release:
Or pin the version explicitly:
# Cargo.toml
[]
= "*"
The import path is the snake_case form of the crate name, e.g.
use clientapi_pve::apis::nodes_api;.
Usage
The Rust SDK uses module-level functions per tag — there's no Client
struct facade because Rust modules don't bind to method receivers.
Instead, hold a Configuration and pass it into each call:
use ;
async
Compound configs
PVE encodes many fields as CLI-style shorthand strings
(net0=virtio,bridge=vmbr0,firewall=1). Round-trip helpers are
emitted for every compound config schema:
use PveQemuNetConfig;
let cfg = PveQemuNetConfig ;
let shorthand = cfg.to_shorthand;
// → "virtio,bridge=vmbr0,firewall=1"
Indexed families
Numbered properties (net0..net31, mp0..mp255, …) are exposed on
every model as a single Option<HashMap<u32, ItemType>> field with
manual Serialize/Deserialize impls that round-trip the prefixed
wire keys:
use HashMap;
let mut nets: = new;
nets.insert;
nets.insert;
let req = QemuCreateVmRequest ;
// Wire format: { "net0": ..., "net3": ... }
License
Apache 2.0 — see LICENSE.