alibabacloud

Crates.ioalibabacloud
lib.rsalibabacloud
version0.1.1
sourcesrc
created_at2025-02-16 07:12:17.123813+00
updated_at2025-02-16 07:44:10.336563+00
description📦 Aliyun API SDK written in Rust
homepagehttps://github.com/lvillis/aliyun-sdk-rust
repositoryhttps://github.com/lvillis/aliyun-sdk-rust
max_upload_size
id1557427
size45,492
(lvillis)

documentation

https://github.com/lvillis/aliyun-sdk-rust/blob/main/README.md

README

Table of Contents↗️

aliyun-sdk-rust

📦 Aliyun API SDK written in Rust

crates.io version crates.io version build status say thanks

This project is an Aliyun API SDK written in Rust, designed to help developers integrate Aliyun Cloud services easily. The SDK leverages asynchronous programming (via Tokio) and encapsulates functionalities such as request signing (HMAC-SHA1), unified request handling, and modular service interfaces (e.g., ECS, Billing).

Features

  • Asynchronous Support: Built on Tokio for high concurrency.
  • Request Signing: Implements Aliyun's API signature mechanism using HMAC-SHA1.
  • Modular Design: The project is organized into multiple modules (e.g., ECS, Billing) with clear separation of concerns.
  • Detailed Documentation: Each interface is documented with detailed input/output parameter tables.
  • Comprehensive Testing: Each service interface includes test cases to ensure correct functionality.

Implemented Interfaces

  • ECS Module

    • DescribeRegions
    • DescribeZones
    • DescribeAvailableResource
    • DescribeAccountAttributes
    • DescribeResourcesModification
    • DescribeRecommendInstanceType
    • RunInstances
    • StartInstances
    • StopInstances
    • RebootInstance
    • DeleteInstance
    • DescribeInstanceStatus
    • DescribeInstances
  • Billing Module

    • QueryAccountBalance

Usage

Add this crate to your Cargo.toml:

[dependencies]
alibabacloud = "0.1.0"

Then import and use the interfaces:

use alibabacloud::client::AliyunClient;
use alibabacloud::services::ecs::*;

#[tokio::main]
async fn main() {
    let client = AliyunClient::new("YourAccessKeyId".into(), "YourAccessKeySecret".into());
    // Query available regions
    let regions = describe_regions(&client, None).await.unwrap();
    println!("Available regions: {:?}", regions);
}
Commit count: 0

cargo fmt