#sdk #virtualization #proxmox #api #async #practice

nightly leeca_proxmox

A modern, safe, and async-first SDK for interacting with Proxmox Virtual Environment servers

2 releases

new 0.1.1 Jan 14, 2025
0.1.0 Jan 14, 2025

#1267 in Web programming

Apache-2.0

88KB
2K SLoC

Leeca Proxmox VE SDK for Rust

A modern, safe, and async-first SDK for interacting with Proxmox Virtual Environment servers, following industry best practices and clean architecture principles.

Features

  • ๐Ÿ”’ Enterprise-Grade Security

    • Token-based authentication
    • Comprehensive input validation
    • Secure default configurations
    • Thread-safe operations
    • Built-in SSL/TLS support
  • ๐Ÿš€ Modern Architecture

    • Async-first design using Tokio
    • Clean Architecture principles
    • Domain-Driven Design
    • SOLID principles
    • Immutable Value Objects
  • ๐Ÿ’ช Robust Error Handling

    • Type-safe error propagation
    • Detailed error contexts
    • Stack traces for debugging
    • Custom error types
    • Validation error handling
  • ๐Ÿงช Quality Assurance

    • Comprehensive test suite
    • Integration tests
    • Property-based testing
    • Mocked HTTP responses
    • CI/CD pipeline
  • ๐Ÿ“š Rich Documentation

    • Full API documentation
    • Code examples
    • Architecture guides
    • Best practices
    • Migration guides

Getting Started

Installation

Add to your Cargo.toml:

[dependencies]
leeca_proxmox = "0.1.0"

Quick Example

use leeca_proxmox::{ProxmoxClient, ProxmoxResult};

#[tokio::main]
async fn main() -> ProxmoxResult<()> {
    let mut client = ProxmoxClient::builder()
        .host("proxmox.example.com")?
        .port(8006)?
        .credentials("admin", "password", "pve")?
        .secure(true)
        .build()
        .await?;

    client.login().await?;
    Ok(())
}

Documentation

Project Guidelines

Development

Requirements

  • Rust (nightly)
  • Cargo
  • Tokio runtime

Quality Checks

# Run linter
cargo clippy

# Run formatter
cargo fmt

# Run tests with coverage
cargo tarpaulin

Project Status

See our CHANGELOG for version history and ROADMAP for future plans.

Community

Versioning

This project follows Semantic Versioning. See our CHANGELOG for version history.

โš ๏ธ Note: This project is in active development. APIs may change before 1.0.0 release.

Acknowledgments

  • Proxmox VE team for their excellent API documentation
  • Rust community for their tools and crates
  • All contributors

Dependencies

~15โ€“29MB
~406K SLoC