2 releases
new 0.1.1 | Jan 14, 2025 |
---|---|
0.1.0 | Jan 14, 2025 |
#1283 in Web programming
171 downloads per month
92KB
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
cargo add leeca_proxmox
Quick Example
use leeca_proxmox::{ProxmoxClient, ProxmoxResult};
#[tokio::main]
async fn main() -> ProxmoxResult<()> {
let mut client = ProxmoxClient::builder()
.host("192.168.1.182")?
.port(8006)?
.credentials("leeca", "Leeca_proxmox1!", "pam")?
.secure(false)
.build()
.await?;
client.login().await?;
println!("Authenticated: {}", client.is_authenticated());
if let Some(token) = client.auth_token() {
println!("Session Token: {}", token.value().await);
println!("Session Token expires at: {:?}", token.expires_at().await);
}
if let Some(csrf) = client.csrf_token() {
println!("CSRF Token: {}", csrf.value().await);
println!("CSRF Token expires at: {:?}", csrf.expires_at().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.
Legal
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โ28MB
~401K SLoC