Expand description
§Cloud Billing SDK
A comprehensive Rust library for managing multi-cloud billing and account management.
§Supported Cloud Providers
Each provider is behind a feature flag for modular compilation:
- Aliyun (Alibaba Cloud) - feature:
aliyun- Full support - Tencent Cloud - feature:
tencentcloud- Full support - AWS - feature:
aws- Full support via Cost Explorer API - Volcengine (火山云) - feature:
volcengine- Full support - UCloud - feature:
ucloud- Partial support - Azure - feature:
azure- Planned
§Feature Flags
§Cloud Providers (modular)
aliyun- Alibaba Cloud billing supporttencentcloud- Tencent Cloud billing supportaws- AWS Cost Explorer supportvolcengine- Volcengine billing supportucloud- UCloud billing supportall-providers- Enable all cloud providers
§Database Support (optional)
db-postgres- PostgreSQL database supportdb-sqlite- SQLite database support
§Convenience Features
full- All providers + PostgreSQLfull-sqlite- All providers + SQLite
§Default Features
By default, all cloud providers are enabled but no database backend.
§Core Features
- 🔄 Direct cloud provider API integration
- 👥 Multi-account support per provider
- 📊 Bill aggregation and analysis
- 📈 Cost trending and comparison
- 💾 Optional database persistence (PostgreSQL or SQLite)
- 🔍 Query billing data by cycle, provider, and account
§Quick Start
§Basic Usage (without database)
[dependencies]
cbilling = { version = "0.1", features = ["aliyun"] }use cbilling::providers::aliyun::AliyunBillingClient;
use cbilling::error::Result;
#[tokio::main]
async fn main() -> Result<()> {
// Create Aliyun billing client
let client = AliyunBillingClient::new(
"your_access_key_id".to_string(),
"your_access_key_secret".to_string(),
);
// Query billing data for a specific month
let billing_cycle = "2025-03";
let response = client.query_instance_bill(billing_cycle, None, None, None).await?;
println!("Billing data: {:?}", response);
Ok(())
}§With Database Support
[dependencies]
# PostgreSQL
cbilling = { version = "0.1", features = ["aliyun", "db-postgres"] }
# Or SQLite
cbilling = { version = "0.1", features = ["aliyun", "db-sqlite"] }
# Or all providers with PostgreSQL
cbilling = { version = "0.1", features = ["full"] }Re-exports§
pub use error::BillingError;pub use error::Result;pub use models::Account;pub use models::Bill;pub use models::Provider;pub use models::ProviderConfig;
Modules§
- error
- Error types for cloud billing operations
- models
- Data models for multi-cloud billing management
- providers
- Cloud Provider Integration
- service
- Cloud Billing Service
Constants§
- VERSION
- Library version
Functions§
- init
- Initialize the billing library